Python - 魔法方法
object.__dict__ 提供了一个字典。可以打印任何实例的每个属性信息。
>>> class Person(object):
... def __init__(self,name,age,job):
... self.name = name
... self.age = age
... self.job = job
...
>>> p = Person('xiaoming',18,'Java')
>>> p.__dict__
{'name': 'xiaoming', 'age': 18, 'job': 'Java'}
__class__: 返回对象的类型信息
__bases__: 返回类对象的所有超类,是一个元组类型
>>> class A:
... pass
...
>>> class B:
... pass
...
>>> class C(A,B):
... pass
...
>>> C.__bases__
(<class '__main__.A'>, <class '__main__.B'>)
__new__
:
- 使用 类名() 创建对象时,Python的解释器会首先调用__new__ 方法为对象分配内存空间
- new 是一个由object 基类提供的内置静态方法,主要作用由两个
1.为对象分配内存空间 2. 返回对象的引用- Py解释器获得对象的引用后,将引用作为第一个参数,传递给__init__方法
- 重写__new__ 方法一定要 return super().new(cls),否则解释器得不到分配了空间的引用,就不会调用对象的初始化方法
- new 是一个静态方法,在调用时要主动传递cls参数
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15777185.html