1、为实例临时绑定属性和方法
class Stuedent(object):
# __slots__ = ('name',"age","set_age")
pass
s1 = Stuedent()
# 为实例临时绑定属性
s1.name = "dsb"
print(s1.name)
# 为实例临时绑定方法
from types import MethodType
def set_age(self,age):
self.age = age
s1.set_age = MethodType(set_age,s1)
s1.set_age(20)
print(s1.age)
2、在类中限制实例只能绑定哪些属性
class Stuedent(object):
__slots__ = ('name',"age")
这个时候我们去绑定一个未申明的方法会报错
# 为实例临时绑定方法
from types import MethodType
def set_age(self,age):
self.age = age
s1.set_age = MethodType(set_age,s1)
s1.set_age(20)
print(s1.age)
报错如下
AttributeError: 'Stuedent' object has no attribute 'set_age'
如果我们申明允许绑定的话就可以绑定成功
class Stuedent(object):
__slots__ = ('name',"age","set_age")
再次绑定属性的话就可以绑定成功
# 为实例临时绑定方法
from types import MethodType
def set_age(self,age):
self.age = age
s1.set_age = MethodType(set_age,s1)
s1.set_age(20)
print(s1.age)
浙公网安备 33010602011771号