-
__init__魔术方法: 对象实例化触发的方法
-
__del__魔术方法: 对象即将被释放时, 会调用该方法
注意点: 如果这个对象产生了循环引用, 并且实现了__del__方法, 那么这个对象得不到释放, 从而会产生内存泄漏, 因此慎用该方法 -
__new__魔术方法: 该方法用来创建对象, 创建对象需要重写该方法
-
__class__魔术属性: 返回对象所属的类, 如果是类调用该属性, 那么得到该类的元类
-
__repr__魔术方法: 用于机器看, 跟__str__使用情况差不多
-
__str__魔术方法:
打印某个对象时,通常显示是对象所属类的名字以及内存地址, 不适合人类阅读, 重写该方法自定义字符串返回
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return "Person<%s>" % self.name
p1 = Person('zs')
print(p1)
- __dict__魔术属性:
获取用户自定义的属性,返回一个字典包含了属性名和值
class Person:
def __init__(self, name):
self.name = name
p1 = Person('zs')
print(p1.__dict__)