Python的构造函数是__new__
函数,不是__init__
__new__(cls)
构造器:用于控制实例的生产
1:空间的初始化
2:在实例化过程中自动执行
3:new函数的返回值就是创建出来的实例
4: 类级别的函数
__init__
(self):
1: 数据初始化
2:自动化实例化过程中执行
3:不允许返回除了None以外的任何对象
a = A()
a = A.__new___
() 创建实例
a.__init__
() 分配数据
class A:
def __new__(cls):
print('空间初始化...')
# python不需要你重写这个函数
# 真正的创建实例
return super(A,cls).__new__(cls)
# 1:找到类A的父类
# 2:通过类A的父类实例的对象 生产出类A的实例
def __init__(self):
print('我是数据初始化函数...')
self.a = 1
a = A()
网友评论