init_方法:初始化一个类,在创建实例对象为其赋值时使用。
_str_方法:在将对象转换成字符串str(对象) 测试的时候,打印对象的信息。
class Cat:
“”“定义一个猫类”""
def init(self, name, age):
self.name = name
self.age = age
print(‘init函数执行’)
pass
def str(self): #
return “名字是:%s , 年龄是:%d” % (self.name, self.age)
pass
def new(cls, *args, **kwargs):
‘’’
创建对象实例的方法每调用 一次就会生成个新的对象 cls就是cLass的缩写
场景:可以控制创建对象的一些属性限定经常用来做单例模式的时候来使用
:param args:
:param kwargs:
‘’’
print(‘new函数执行’)
return object.new(cls) #这里是真正创建对象实例的 cls:表示当前类
tom = Cat(“汤姆”, 20) #返回一个在当前类 里面创建的object类型的实例化
print(tom)
#__new_和__init__雨数的区别
#__new__类的实例化方法必须要返回该实例否则对象就创建不成功
#__init__用来做数据属性的初始化工作也可以认为是实例的构造方法接受类的实例self并对其进行构造
#__new__至少有一个参数是cls代表要实例化的类,此参数在实例化时由python解释器自动提供
#__new__函数执行要早于__init__函数