在python中,形如__ xx__()的函数叫做魔法方法,指的是具有特殊功能的函数。
用来初始化一个类对象的函数,它在类中不写并不会报错,但是不写这个类就不能用(谁会去写一个啥属性都没有的类啊,有病啊);
这个函数执行时,OS会在内存中开辟一块空间来存放一个对象
当使用print输出对象的时候,默认打印对象的内存地址。如果一个类重写了__ str __方法,那么就会打印这个方法的返回值
class Person():
def __str__(self):
return "hello"
tom = Person()
print(tom) # "hello"
当删除对象时,python解释器会默认调用__ del 方法;当对象生命周期结束时,python的垃圾回收机制也会自动调用 del __方法进行回收。
class Person():
def __del__(self):
print(f'{self}对象已被删除')
tom = Person()
del tom
# result
<__main__.Person object at 0x00000287CD651608>对象已被删除
这个函数可以证明类对象或者其他例如函数是否可调用。详细参考我的博客
它是用来判断某种数据类型是否可迭代的
获取类或方法得描述信息
class Foo():
"""
这是类描述
"""
def start(self):
"""
这是类方法描述
"""
pass
f = Foo()
print(Foo.__doc__)
print(f.start.__doc__)
# results
这是类描述
这是类方法描述
test.py
class Person():
def __init__():
self.name = 'laowang'
main.py
from test import Person
obj = Person()
print(obj.__module__) # 输出test
print(obj.__class__) # 输出test.Person
获取类或对象的所有信息以字典的形式返回