一,动态添加属性和方法
#动态给实例添加方法和属性
from types import MethodType
class Person():
pass
PersonObj = Person()
PersonObj.name = "jack"
print(PersonObj.name)
def Say(self):
print("My name is",self.name)
PersonObj.Say = MethodType(Say,PersonObj)
PersonObj.Say()
二,限制添加的属性名
"""
定义类的时候,定义一个特殊的属性,__slots__,可以限制动态添加的属性
"""
class Person2():
__slots__ = ("name","age","school")
PersonObj2 = Person2()
PersonObj2.name = "Lucy"
#PersonObj2.weight = "180" 代码报错
本文介绍了Python中如何动态地为对象添加属性和方法,通过`MethodType`实现方法绑定,以及使用`__slots__`特性来限制类实例可添加的属性,以优化内存使用和防止不必要的属性添加。

被折叠的 条评论
为什么被折叠?



