Python`setattr`用于函数?

时间:2017-08-14 21:08:26

标签: python reflection

我们说我有一个类A,如此:

class A:
    def __init__(self):
        self.a = a
    def __add__(self, other):
        return other + 1

然后,我在控制台中运行以下代码:

>>> a = A()
>>> a.a
<<< 1
>>> setattr(a, 'a', 2)
>>> a.a
<<< 2
>>> a + 2
<<< 3
>>> setattr(a, '__add__', lambda s, o: o - 1)
>>> a + 2
<<< 3

有没有办法改变像这样的类函数?

请注意,它适用于非__函数,但有趣的是,如果我将其设置为函数f,则该函数不应将self作为参数

0 个答案:

没有答案