向现有对象实例添加方法:Python 指南
虽然通常不鼓励,但向对象实例添加方法在某些情况下可能是必要的。在 Python 中,函数和绑定方法之间的区别对于此过程至关重要。
绑定方法链接到特定实例,该实例在调用时自动提供为第一个参数。相反,类级可调用对象保持未绑定状态,从而实现动态类定义修改。
要将方法附加到整个类,只需更新其定义:
def fooFighters(self): print "fooFighters" A.fooFighters = fooFighters
此方法可供所有人使用实例,包括之前定义的实例。
将方法附加到单个实例是一个挑战。直接将其分配给实例不会绑定它,从而导致调用时出错。
要解决此问题,请利用类型模块中的 MethodType 函数:
import types a.barFighters = types.MethodType(barFighters, a)
绑定方法仅影响它们附加到的特定实例,而其他类实例保持不变。如需进一步了解,请探索描述符和元类编程等主题。
以上是如何在 Python 中向特定对象实例添加方法?的详细内容。更多信息请关注PHP中文网其他相关文章!