1.内置方法:
__str__ 打印自动触发
__del__ 删除对象之前自动触发
2.用于实例化产生类的类称之为元类
__call__ 调用对象时自动触发
__new__ 新建一个空对象
__init__ 调用类自动触发,初始化独有属性
1.__str__方法
在对象被打印时,自动触发,应该在该方法内采集与对象slef有关的信息,然后拼成字符串返回
def __str__(self):
print('====>')
return '<name:%s age:%s>' %(self.name,self.age)
obj=People('egon',18)
print(obj)
2.__del__析构方法
__del__会在对象被删除之前自动触发
class People:
def __init__(self,name,age):
self.name=name
self.age=age
self.f=open('a.txt','r',encoding='utf-8')
def __del__(self) #程序运行完毕,对象自动删除
print('==========>') #对象被删除之前自动触发
# self.f.close #需要做回收操作系统资源相关的事情
obj=People('egon',18)
del obj
3.什么是元类
在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象
负责产生该对象的类称为之为元类,即元类可以简称为类的类
class Foo: #Foo=元类() #把定义的类foo当初个对象来看
pass
元类是负责产生类的,所以我们学习元类或自定义元类的目的是为了控制类的产生过程(添加逻辑条件..)
还可以控制对象的产生过程
<