Python如何动态的为对象添加方法或属性,__slots__用法

代码示例如下:

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对象上

a.test2()

你可能感兴趣的:(Python如何动态的为对象添加方法或属性,__slots__用法)