python - 如何在python中更改对象的方法

标签 python

我写了一个 python 文件:

class A(object):
    def update(self, str):
        pass

    def say(self, str):
        print "I update: " + str

def fun(obj, str):
    obj.say(str)

a = A()
import types
setattr(A, "update", types.MethodType(fun, None, A))
a.update("hello")

b = A()
b.update("world?")

它改变了类的行为,对象b也被改变了。但是,我只想更改对象 a。 如何在 python 中更改对象的方法?

最佳答案

这里有一个方法:

 a.update = lambda x: fun(a, x)

关于python - 如何在python中更改对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119188/

相关文章:

python - 使用 ipython 或 python 的 matplotlib.pyplot 无法显示图像

python - 在 Pandas DataFrame 上使用 float_format 调用 to_string 时出现问题

python - 尽管网络很大、样本量很小并且数据经过预处理,但 Tensorflow LSTM 仍无法学习

python - 如何使用python代码将Windows网络驱动器连接到具有Linux环境的Azure Function App

python - 监听键盘事件而不捕获它们?

python - 格式化 Pandas 数据框中整数的千位分隔符

python - 如何使用 Ursina 实现敌人碰撞并更改 Ursina 中的子弹方向?

python - 使用 Flask 创建 Web 服务器,输出可用于 GET 请求的内容

python - 输入到 LSTM 网络 tensorflow

python - 这个正则表达式是否意味着它必须以 A 开头,以 Z 结尾?研究 "\A[0-9A-Za-z_-]+\Z"