【发布时间】:2020-01-02 22:21:36
【问题描述】:
如果我这样写:
class A:
def a(self):
return 2
def b(self):
print(self.a())
e = A()
def xa(self):
return 3
e.a = xa
e.b()
会爆炸说:
TypeError: xa() missing 1 required positional argument: 'self'
为什么会这样? (如果 xa 没有参数,那么它可以工作,打印 3,但是我无法访问 self)。
这是为了测试目的,不是实际的生产代码
【问题讨论】:
-
self只是一个名字。你可以写mickeyMouse而不是self,一切都一样。如果你想定义一个实例方法而不是一个碰巧是可调用的实例属性,你想在类上设置属性。 -
很好的解释here
标签: python python-object