python - 在 Python 中将方法动态绑定(bind)到类实例

标签 python function class methods instance

class mc:
    def show(self):
        self.func()


a = mc()
def myfunc(self):
    print('instance function')
a.func = myfunc
a.show()

上面的方法不起作用:TypeError: myfunc() 缺少 1 个必需的位置参数:'self'

考虑到我使用的是点表示法,为什么 Python 没有自动插入实例名称?

最佳答案

您可以使用 monkey patching 向类动态添加方法.

class mc:
    def show(self):
        self.func()

a = mc()
def myfunc(self):
    print('instance function')
mc.func = myfunc
a.show()

关于python - 在 Python 中将方法动态绑定(bind)到类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71121996/

相关文章:

python - 如何重复捕获组一次或多次并提取匹配项

python - pyqt4 - vboxlayout 中元素之间的默认填充?

r - 创建R函数来查找两点之间的距离和角度

python - 装饰一个 python 类,使得大多数方法在有条件时引发异常

c++ - 使用类定义数组创建 C++ 类

python - 如何过滤属于超过 1 个成员的组的所有行?

javascript - 如何使用 Javascript 变量设置 jinja2 表达式?

python - 如何将随机函数作为参数传递?

string - Laravel str_random() 还是自定义函数?

java - 在运行时查找 java 类依赖项