python动态为类对象添加属性和方法__slots__用法,MethodType用法
上一篇 /
下一篇 2019-12-09 18:11:59
/ 个人分类:python笔记
代码示例如下:
import types #使用MethodType方法需要导入包
class Test(object): #定义一个Test类,包含name属性和f()方法
def __init__(self, name):
self.name = name
def f(self):
print("test")
#__slots__ = ('name') #这句话固定了Test类的对象的属性只有name,
#不允许再有其他的属性
def test2(self): #定义一个函数,准备添加到test类的对象中
print("name:%s"%self.name)
a = test("老王")
a.f()
a.age = 18 #这样就可以动态为a对象添加属性,如果设置了__slots__属性,则不可以动态添加属性了,这句话就会报错
print('年龄:%d'%a.age)
a.test2 = types.MethodType(test2,a)
#动态添加方法,将test2方法绑定到a对象上,注意test2在这里当做变量使用,不加()
a.test2()
收藏
举报
TAG: