我有这个代码:
class X(object):
x = 10
def test_x(self):
return self.x
class Y(X):
def test_y(self):
return self.x
y = Y()
y.test_y() # works fine
但是当我使用 type 构造一个基于 X 的新对象 z 时:
z = type('Z', (X,), dict(z=1))
z.x # works fine
z.test_x() # gives a TypeError :
必须使用 Z 实例作为第一个参数调用未绑定的方法 test_x()(什么都没有)。我该如何解决。
更新
在 Martijn 的帮助和理解下,我解决了这个问题:
z = type('Z', (X,), dict(z=1))()
z.test_x()