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)

 

相关文章:

  • 2021-05-26
  • 2021-07-25
  • 2021-12-09
  • 2021-08-14
  • 2022-02-21
  • 2021-06-02
猜你喜欢
  • 2022-12-23
  • 2022-01-23
  • 2021-07-27
  • 2022-12-23
  • 2022-12-23
  • 2021-11-15
  • 2022-12-23
相关资源
相似解决方案