init(self[,…])
类在实例化方法的时候首先会调用的一个方法。例如下例,需要在类定义的时候传入参数,则需要对类重写:
注:init() 自身不能有返回值。
del(self)
如果说init和new方法是对象的构造器,那么del为一个析构器。
只有当所有指向对象的引用都被删除的时候才会启用垃圾回收机制,而垃圾回收机制销毁对象的时候才会调用_del_方法。
注:真除法指除完以后带小数;mod取余数;divmod(a,b)返回的值是一个元组:(a//b,a%b),例如5除以3余2,则返回值为2;pow为进行幂运算;我们所理解的最小存储单位是字节,CPU理解的是位(二进制),一个字节8位,故按位左移右移是指二进制下的位数移动。
此时会进入无限递归的状态,因为return中的正好是_add_()中的参数,修正后:
其中,int即为被覆盖的工厂函数。
a+b因为都有_add_方法所以为触发_radd_;当1+b时,因为1没有该方法,故直接触发b的_radd_方法,同时b是带入的self位置,故返回2。
同样,
因为3-a中3没有对应方法,触发a的时候即为a-3;若想3-a需要改变other和self位置。
abs()为取绝对值;按位求反指0变1,1变0。
描述符就是将某种类型的类的实例指派给另一个类的属性。而特殊类型即要实现以下三个或其中一个:
get(self,instance,owner)
用于访问属性,他返回属性的值
set(self,instance,value)
将在属性分配操作中调用,不返回任何内容
delete(self,instance)
控制删除操作,不返回任何内容