1、类内,类的方法不能和限制的名同名
2、类外,若实例和类要使用限制的名,实例必须在前,否则报错
3、类外,若实例和类要使用限制的名,类会覆盖实例的属性和方法
from types import MethodType class a(object): __slots__="b" '''def b(): pass b=0''' #方法属性都报错 def c(): pass d=a() '''d.b=1 a.b=2 print(d.b,a.b)''' #d的b属性变成2了 '''d.b=c print(d.b()) a.b=c #print(d.b()) #d的b方法变成类方法传了d进去,报错 print(a.b())''' def e(self,f): self.b=f return self.b d.b=MethodType(e,d) d.b(3) print(d.b) a.b=MethodType(e,a) d.b(4)#d的b方法变成类方法,给a.b赋值改变了d.b的值 print(d.b,a.b)
Sign in to make a reply
金钟铉
1、类内,类的方法不能和限制的名同名
2、类外,若实例和类要使用限制的名,实例必须在前,否则报错
3、类外,若实例和类要使用限制的名,类会覆盖实例的属性和方法