0

我有一个A类,我从A类继承了一个B类。我在ClassA中有两个方法methodX和methodY。这个methodY将调用classA中的methodX。现在我在 ClassB 中有一个 methodZ。

以下是场景:-

class A(object):
 def methodX(self):
  ....
 def methodY(self):
  methodX()

class B(A)
 def methodZ(self):
  self.methodY() #says the global methodX is not defined 

我的问题是我必须调用methodY,而methodY又从methodZ调用methodX。这怎么可能?我应该全局定义methodX吗?还是有其他选择..提前谢谢!

4

3 回答 3

3

methodY你应该打电话self.methodX()

于 2013-04-02T05:51:19.657 回答
0

由于不使用该类的对象就无法调用成员函数,因此会引发此错误。使用

self.methodX()

methodX()使用用于调用对象的对象调用函数methodY()

于 2013-04-02T07:35:43.873 回答
0

正如之前所说,使用 self.methodX() 似乎可以解决您的问题。检查这个:

class A(object):
    def methodX(self):
        print "A.methodX"
    def methodY(self):
        print "A.methodY"
        self.methodX()

class B(A):
    def methodZ(self):
        print "B.methodZ"
        self.methodY()

b = B()
b.methodZ()

生成此输出:

$ python test.py
B.methodZ
A.methodY
A.methodX
$

我想这就是你要找的...

于 2013-04-02T08:45:42.703 回答