class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return '<Person: %s(%s)>' % (self.name, self.age)
if __name__ == '__main__':
piglei = Person('piglei', 24)
print piglei
__init__其实不是实例化一个类的时候第一个被调用 的方法。使用 Persion(name, age) 最先被调用的方法 其实是 new 方法。
2、__init__是属于Python中的魔法方法。所谓魔法方法,即是Python中内置的、当进行特定操作时,会自动调用的方法,表现为方法名前后有两个下划线
3、__new__方法是将对象创建出来的方法。在实际运行中,先走__new__方法,生成对象并返回,后调用__init__方法,将对象的引用传给__init__方法中的self
本文探讨了Python中__init__和__new__的区别。首先,__new__是对象创建过程中的第一步,它负责生成对象并返回。而__init__则是对象初始化的阶段,用于设置对象的属性,其参数中的self指向由__new__生成的对象。__init__并非实例化时的第一个被调用的方法,而是__new__之后。

606

被折叠的 条评论
为什么被折叠?



