首页 > 编程语言 > 详细

python 动态给实例添加属性和方法并使用__slots__

时间:2020-02-17 18:05:22      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:对象   灵活   __slots__   port   限制   odt   

from types import MethodType

#创建一个空类
class Person(object):
__slots__ = ("name", "age", "speak")


per = Person()
#动态添加属性,这体现了动态语言的特点(灵活)
per.name = "tom"
print(per.name)
#动态添加方法
‘‘‘
def say(self):
print("my name is " + self.name)
per.speak = say
per.speak(per)
‘‘‘
def say(self):
print("my name is " + self.name)
per.speak = MethodType(say, per)
per.speak()




#思考:如果我们想要限制实例的属性怎么办?
#比如,只允许给对象添加name,age,height,weight属性


#解决:定义类的时候,定义一个特殊的属性(__slots__),可以限制动态添加的属性

per.height = 170
print(per.height)

python 动态给实例添加属性和方法并使用__slots__

标签:对象   灵活   __slots__   port   限制   odt   

原文:https://www.cnblogs.com/pygo/p/12322590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号