from types import MethodType
#创建一个空类
class Person(object):
__slots__ = ("name","age","speak","height")
per = Person()
#动态添加属性,这体现了动态语言的特点(灵活)
per.name = "tom"
print(per.name)
'''
#动态添加方法
def say(self):
print("my name is "+self.name)
per.speak = say
per.speak()
'''
def say(self):
print("my name is "+self.name)
per.speak = MethodType(say,per)
per.speak()
#思考:如果我们想要限制实力的属性怎么办
#比如:只允许给对象添加 name,age,height,weight属性
#解决:定义类的时候,定义一个特殊的属性(__slots__)
#可以限制动态添加的属性
per.height = 100
print(per.height)
动态给实例添加属性和方法
猜你喜欢
转载自blog.csdn.net/qq_41856814/article/details/89385699
今日推荐
周排行