大致描述功能作用
class A():
# 打印对象的时候默认打印__str__的返回值,且这个方法的返回值一定要是字符串
def __str__():
return '__str__'
# 程序结束 或者对象被删除,一定是对象被删除了,不是只一个引用被删除而已,这个不好用,尽量不用
def __del__():
pass
# 先创建一个对象,因此在__init__之前先执行
def __new__(cls):
__instance = None
import threading
__lock = threading.Lock()
with __lock:
if not cls.__instance:
cls.__instance = {}
return cls.__instance
# 拿到__new__创建的对象,进行你自己写的初始化工作
def __init__(self):
pass
# 对象的运算符比较
def __eq__(self, other):
if self.a == other.a and self.b == other.b:
return True
return False
# 对象运算符自定义后,一定要改一下这个__hash__,理论上eq改变hash也要改变
def __hash__(self):
return hash((self.a,self.b,self.c))
# eq等于, gt大于, lt小于, ge大于等于, le小于等于
# 设置属性的内容
def __setattr__(self, name, val):
pass
# 如果不存在,会报错
def __getattr__(self, name):
pass
# 使实例对象可以被调用
def __call__():
pass
# 可迭代对象必须的
def __iter__():
pass
# 迭代器必须的第二个魔术方法,第一个是__iter__()
def __next__():
pass