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:

 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 4530
  • 日志数: 6
  • 建立时间: 2018-11-29
  • 更新时间: 2019-12-12

RSS订阅

Open Toolbar