老师的博客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')())