美文网首页
python使用MethodType进行类动态组装

python使用MethodType进行类动态组装

作者: LittleTrue | 来源:发表于2018-10-04 23:25 被阅读0次

自由组装和MethodType

自由组装方法到类:

python中函数名可以当变量使用
定义好方法后, 可以将方法名传入一个自定义变量, 通过调用这个自定义变量调用该方法(类似lamada表达式的功能)。

由此也可以将方法名传入一个类中的变量, 从而使得该类拥有该方法,可以正常调用。

但是自由组装存在一个问题: 实例并不能组装, 因为方法中至少存在一个变量self, 如果方法绑定实例, 实例调用方法后会报无参数传入的错(不是在类中不会自动传入)。

可以用MethodType将方法绑定到类/实例

可以用MethodType将方法绑定到类/实例,并不是将这个方法直接写到类内部,而是在内存中创建一个link指向外部的方法,在创建实例的时候这个link也会被复制。

#导入MethodType
from types import MethodType
class Student(object):
    pass
#组装方法
def set_name(self, name):
    self.name = name

s1 = Student()
#依次传入方法名, 实例, 类名 完成实例绑定方法
s1.set_name = MethodType(set_name, s1, Student)

相关文章

  • python使用MethodType进行类动态组装

    自由组装和MethodType 自由组装方法到类: python中函数名可以当变量使用定义好方法后, 可以将方法名...

  • python对象绑定属相方法、生成器

    1、python动态添加属性方法的方法, import types types.MethodType(属性方法,i...

  • types模块常用函数和类

    函数和类使用项目数 1.MethodType()用在(763)个项目中 2.ModuleType()用在(689)...

  • Python中的类与元类

    Python的类 在Python中类也是一个对象,可以使用type()内置函数动态创建类 函数type()实际是一...

  • MyBatis5-动态 SQL

    动态 SQL 什么是动态 SQL 就是动态的对 SQL 进行组装 拼接. : 可以自动去...

  • KVC总结(转)

    概述由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类...

  • 使用Python进行聚类

    微信公众号:岭南见闻关注可了解更多的数据处理技巧。问题或建议,请公众号留言;如果你觉得文章对你有帮助,欢迎赞赏 导...

  • 面向对象

    Python使用类(class)和对象(object),进行面向对象(object-orientedprogram...

  • Python程序加密打包

    1、Python源代码加密为Pyd(类dll,so等动态链接库) 步骤:1、使用此文程序编译python源程序为p...

  • 1.8、Python基础08 面向对象的基本概念

    Python使用类(class)和对象(object),进行面向对象(object-oriented progra...

网友评论

      本文标题:python使用MethodType进行类动态组装

      本文链接:https://www.haomeiwen.com/subject/jgsfaftx.html