Python中动态添加属性和方法

一,动态添加属性和方法

#动态给实例添加方法和属性
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" 代码报错

猜你喜欢

转载自blog.csdn.net/zhuan_long/article/details/110387398