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()