1、析构函数
class todo2:
def __init__(self,name):
self.name=name
def play(self,lesson_name):
print("学生",self.name,"去",lesson_name,"玩")
def __del__(self):#在方法结束后会被调用的方法
print("玩完了")
zhang=todo("xiaozhang")
zhang.lesson("python")
li=todo2("xiaoli")
li.play("网吧")
2、其他内置函数
class Vector():
def __init__(self,a,b):
self.a=a
self.b=b
def __str__(self):#print时候调用
return 'vector(%d,%d)' %(self.a,self.b)
def __repr__(self):#repr方法的时候调用,或者交互模式,直接使用实例
return "vector"
def __call__(self):
print("vector is called")
def __del__(self):#程序结束的时候会调用
print("del vecotr instance")
x=Vector(3,7)
print(repr(x))
x()#默认调用__call__的内置方法
print(x.__dict__)#打印此实例包含的所有实例变量
class Foo():
def __init__(self):
self.data={}#数据存在此字典中
def __getitem__(self, key):#读操作:实例名【key】--->调用此方法
print("__getitem__",key)
return self.data.get(key,None)
def __setitem__(self, key, value):#赋值:实例名【key】=xxx--->调用此方法
print('__setitem__',key,value)
self.data[key]=value
def __delitem__(self, key):#删除操作:del 实例名【key】--->调用此方法
print('__delitem__',key)
del self.data[key]
obj=Foo()
result=obj["姓名"]
obj['姓名']="涵涵"
print(result)
del obj['姓名']