我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python相关问题代码分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python相关问题代码分析

这篇文章主要介绍“Python相关问题代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python相关问题代码分析”文章能帮助大家解决问题。

1、反射算术运算符

你可能知道 Python 里面的魔法函数,比如 __add__ 和 __sub__ 代表 + - 运算符,表示 obj +/- something,但你可能不知道还有一个 __radd__,__rsub__ 函数,可以表示 something +/- obj。

举例如下:

class Dog:def __add__(self, other):return "from __add__"def __radd__(self, other):return "from __radd__"dog = Dog()print(dog + 1) # from __add__print(1 + dog) # from __radd__
2、__getattr__ vs __getattribute__

__getattr__ 魔术方法只有在我们试图获取不存在的属性时才会被调用,__getattribute__ 在每次我们尝试访问属性时都会被调用。

代码如下:

class Dog:def __init__(self, name, age):self.name = nameself.age = agedef __getattr__(self, key):return f"{key} not found"dog = Dog("taidi", 5)print(dog.name)# taidiprint(dog.age) # 5print(dog.breed) # breed not found
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef __getattribute__(self, key):return f"{key} not found"dog = Dog("taidi", 5)print(dog.name)# name not foundprint(dog.age) # age not foundprint(dog.breed) # breed not found
3、super().__init__() 的另一种写法
class Animal:def __init__(self, name, age):self.name = nameself.age = ageclass Dog(Animal):def __init__(self, name, age, breed):super().__init__(name, age)self.breed = breed

等价于:

class Animal:def __init__(self, name, age):self.name = nameself.age = ageclass Dog(Animal):def __init__(self, name, age, breed):Animal.__init__(self, name, age)self.breed = breed

请注意,Animal.__init__(self, name, age) 不能少了 self 参数。

4、检查子类的方法
class Animal: passclass Dog(Animal): passclass Cat(Animal): passclass GermanSheperd(Dog): passprint(Animal.__subclasses__())# [,]

不过,.__subclasses__() 只能检查直接子类。

5、多重集成时,同名函数,子类用的是哪一个?
class A:def test(self):print("A")class B:def test(self):print("B")class C(A, B):passC().test() # A

A 和 B 都有 test 方法,那么 C 到底集成了哪一个呢?在 Python 中,最左边的类优先。

在这里,A 是最左边的父类,因此 A 的 test 方法被集成。

多充继承让人困惑,不用为好。

6 __invert__ 魔法函数
class Dog:def __invert__(self):return "test"dog = Dog()print(~dog) # test

~ 运算符代表“按位非”,通常用于反转内容。一个更有意义的例子如下:

class Coordinate:def __init__(self, x, y):self.x = xself.y = ydef __str__(self):return f"({self.x}, {self.y})"def __invert__(self):return Coordinate(-self.x, -self.y)a = Coordinate(3, 4)b = ~aprint(a, b) # (3, 4) (-3, -4)
7、不使用 class 来创建类
def init(self, name, age):self.name = nameself.age = agedef bark(self):print("woof")Dog = type("Dog", (), {"__init__":init, "bark":bark})dog = Dog("taidi", 10)print(dog.name)print(dog.age)# taidi# 10

在这里,我们将 3 个参数传递给 type 以创建我们的类。

第一个参数 __name__ 是类的名称 第二个参数 __bases__ 是一个包含父类的元组 第三个参数 __dict__ 是一个包含属性和方法的字典。

等价于:

class Dog:def __init__(self, name, age):self.name = nameself.age = agedef bark(self):print("woof")

关于“Python相关问题代码分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python相关问题代码分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python相关问题代码分析

这篇文章主要介绍“Python相关问题代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python相关问题代码分析”文章能帮助大家解决问题。1、反射算术运算符你可能知道 Python 里面的魔
2023-07-06

ADO.NET构造相关问题分析

这篇文章主要讲解了“ADO.NET构造相关问题分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ADO.NET构造相关问题分析”吧!ADO.NET构造使用强类型DataSet的好处 ADO.
2023-06-17

python皮尔逊相关性数据分析分析及实例代码

这篇文章主要为大家介绍了python皮尔逊相关性分析及实例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-15

Golang代码托管相关问题解读

Golang代码托管相关问题解读​随着Golang在软件开发领域的日益流行,对于如何高效地进行代码托管成为了开发者们关注的话题。代码托管是软件开发中非常重要的环节,它能够帮助开发团队协同工作、进行版本控制、跟踪代码变更等。常见的代码托管平
Golang代码托管相关问题解读
2024-03-01

分析Android多主题颜色的相关问题

如果您通过以下的代码来获取定义的颜色值context.getResources().getColor(R.color.some_color_resource_id); 在 Android Studio 中会有一个 lint 警告,提示您 R
2022-06-06

Java表达式相关问题实例分析

本篇内容介绍了“Java表达式相关问题实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Code Golf中的一位挑战者在比赛中写了下面
2023-06-02

怎样分析MySQL中锁的相关问题

这篇文章给大家介绍怎样分析MySQL中锁的相关问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。锁分类:从对数据操作的粒度分 :表锁:操作时,会锁定整个表。行锁:操作时,会锁定当前操作行。从对数据操作的类型分:读锁(共
2023-06-22

VS2005代码相关技巧的示例分析

这篇文章主要为大家分析了VS2005代码相关技巧的示例分析的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“VS2005代码相关技巧的示例分析”的知识吧。VS2
2023-06-17

关于Python 代码全面分析

欢迎各位阅读本篇,Python(KK 英语发音:/ˈpaɪθən/)是一种面向对象、直译式计算机程序设计语言。本篇文章讲述了关于Python 代码全面分析。
关于Python 代码全面分析
2024-04-23

关于dns密码的问题分析

关于dns密码的问题分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。小弟一直以来都在寻找关于DNS配置,无奈很多资料都是过时的,特别关于KEY和RNDC的部分
2023-06-13

盘点八个数据分析相关的Python库(实例+代码)

Python中常会用到一些专门的库,如NumPy、SciPy、Pandas和Matplotlib。

如何分析Visual Studio 2005插件的相关问题

这期内容当中小编将会给大家带来有关如何分析Visual Studio 2005插件的相关问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先,我认为这是一个很有用的插件,如果继续得到改进和增强,我想该插
2023-06-17

C++回溯算法中组合的相关问题分析

回溯算法并不是什么高效的算法,因为本质上时去遍历所有元素,找出所有可能,然后选出需要的答案。那为什么还要回溯法,简单来说,不是所有的问题都能用什么巧妙的方法来解决的
2023-03-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录