老师的博客http://www.cnblogs.com/Eva-J/articles/7351812.html#_label7
内置的方法有很多
不一定全都在object中 #python3中,所有类都是新式类,默认继承Object
例如len(),因为bool于int都不能计算机其长度
__del__
class A: def __del__(self): # 析构函数: 在删除一个对象之前进行一些收尾工作 self.f.close() a = A() a.f = open() # 打开文件 第一 在操作系统中打开了一个文件 拿到了文件操作符存在了内存中 del a # a.f 拿到了文件操作符消失在了内存中 del a # del 既执行了这个方法,又删除了变量
这个代码不是很懂,有时间记得去看一下源码
老师的博客这样写的:
析构方法,当对象在内存中被释放时,自动触发执行。
注:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。
__call__
__call__方法的使用
对象名()便调用了__call__方法,同时还有返回值,返回值好像什么都是可以的
class calll: def __init__(self,name): self.name=name def __call__(self): print('执行了__call__方法') return 1 #方法一 alex=calll('alex') print(alex()) #方法二 print(calll('alex')())