魔术方法
__init__方法:在上一篇中学习过了
__str__方法:
class peole:
def __init__(self,name,age,pro):
self.name=name
self.age=age
self.pro=pro
print('init函数初始化')
pass
# def aihao(self):
# print('{}{}了,读{}专业'.format(self.name,self.age,self.pro))
# pass
def __str__(self):
'''
打印对象 自定义对象 是内容格式
:return:
'''
return '{}{}了,读{}专业'.format(self.name,self.age,self.pro)
pass
def __new__(cls, *args, **kwargs):
'''
创建对象实例的方法 每调用一次 就会生成一个新的对象 cls 就是class的缩写
场景:可以控制创建对象的一些属性限定 经常用来做单例模式的时候来使用
:param args:
:param kwargs:
'''
print('new函数的缩写')
return object.__new__(cls) # 这里是真正创建对象实例的
pass
xm=peole('小明','20','电子信息工程')
print(xm)
小结:
# __new__和__init__函数的区别
# __new__类的实例化方法,必须要返回该实例,否则对象就创建不成功
# init 用来做数据属性的初始化工作,也可以认为是实例的构造方法,接受类的实例 self对其进行构造
# new 有一个参数是cls 代表要实例化的类,此参数在实例化时由python解释器提供
# new 函数执行要早于 __init__函数