欢迎光临
我们一直在努力

python动态绑定属性和方法

Python 是动态语言,我们可以在定义类之后给类动态绑定属性和方法,也可以创建一个类的对象后,
动态给该对象绑定属性和方法,这就是动态语言的灵活性。

前面章节中我们已经学习过如何给类或对象动态的绑定属性和方法,本节我们学习使用 types 模块的 MethodType
对类的方法进行动态绑定。

types 模块的 MethodType 函数

使用 types 模块的 MethodType 函数可以给类的某个对象动态绑定函数,但我们知道给类的某个对象动态绑定函数不会影响另一个对象。

from types import MethodType

class Human(object):
    pass

def printsex(self):
    print(u"女")

ruhua = Human()
zhaoritian = Human()
ruhua.printsex = MethodType(printsex, ruhua)
ruhua.printsex()       # 调用绑定的 printsex 函数
zhaoritian.printsex()  # 错误

如果我们想让动态绑定的函数作用于所有对象,可以直接对类进行动态绑定,比如直接对 Human 类进行动态绑定。

from types import MethodType

class Human(object):
    pass

def printsex(self):
    print(u"女")

ruhua = Human()
zhaoritian = Human()
Human.printsex = MethodType(printsex, Human)
ruhua.printsex()       # 调用绑定的 printsex 函数
zhaoritian.printsex()  # 调用绑定的 printsex 函数

本节重要知识点

会使用 types 的 MethodType 函数。

要知道 types 的 MethodType 函数没法给类或对象动态绑定属性。

赞(0) 打赏
未经允许不得转载:码农资源网 » python动态绑定属性和方法
分享到

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册