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