Python子类调用父函数

时间:2012-05-16 16:03:03

标签: python

class A():
    class B():
       def Foo(self):
           print "Hello"
    class C():
       def Bar(self):
           print "Goodbye"
    def name(self):
        print "FooBar"

我想要做的是,在Bar函数中调用Foo函数。我该怎么做?

2 个答案:

答案 0 :(得分:2)

在Python中,内部类没有与它们关联的外部类的隐式实例。如果没有这样的实例,您就无法从AB调用C的非静态方法。

如果你有这样的实例,那么只需使用点符号:

class C():
   def Bar(self):
       self.a.name()
   ...

(其中self.aA的实例。)

或者,如果A.name()可以变为静态,则以下内容也适用:

class A(object):

    class C():
       def Bar(self):
           print "Goodbye"
           A.name()

    @staticmethod
    def name():
        print "FooBar"

A.C().Bar()

答案 1 :(得分:0)

您需要一个类A的实例来调用方法。