https://blog.csdn.net/weixin_45912307/article/details/108965633
触发时机: 初始化对象时触发(不是实例化触发,但是实例化在一个操作中)
def 类名(): def __init__(self): self.属性名=属性值 def call(self): print(self.属性名) 对象名 = 类名() 对象名.call()向内存申请地址空间再将地址retrun给__init__ 触发时机: 在实例化时触发
def 类名(): def __init__(self,属性名): self.属性名=属性名 [属性名 = 属性值] def __new__(cls,*args,**kwargs): return object.__new__(cls) 对象名 = 类名(属性值)触发时机: 将对象当成函数使用的时候,会默认调用此函数中内容
def __call__(self,属性名): print('{}'.format(属性名)) 对象名(属性值)删除地址的引用 del p1删除p1对地址的引用
查看对地址的引用次数:
import sys sys.getrefcount(p) 当一块空间没有了任何引用,默认执行__del__ ref = 0触发时机: 打印对象名,自动触发去调用__str__里面的内容 注意: 一定要在__str__方法中添加return,return后面内容就是打印对象看到的内容
重点掌握: __str__ 打印对象名,自动触发去调用__str__里面的内容 __init__(self,参数名) 初始化方法,通过类创建对象时,自动触发执行 __new__() 开辟空间 了解: __del__() 没有指针引用的时候会调用,99%不需要重写 __call__() 想不想将对象当成函数用 __doc__ 类的描述信息 __module__ 表示当前操作的对象在哪个模块 __class__ 表示当前操作的对象的类是什么 __del__ 当对象在内存中被释放时,自动触发执行 __dict__ 类或对象中的所有属性
