1

なんとなくFatherクラスからChildクラスのメソッドが見えます。初期化中に父が利用できるのは内部メソッドだけだと思いました

しかし、明らかに私は間違っています。コードは次のとおりです。

class Father():
    def __init__(self):
        self.name=self.getName()
        print "from Father ->", self.name

    def getName(self):
        return "father"

class Child(Father):
    def __init__(self):         
        Father.__init__(self)
        self.name=self.getName()
        print "from Child ->", self.name

    def getName(self):
        return "child"

if __name__ == "__main__":
    import sys, pprint

    someone=Child()

そして、出力は

from Father -> child
from Child -> child

しかし、私は取得したいです

from Father -> father
from Child -> child

それを書き直す方法はありますか?TNX!

4

1 に答える 1

3

これが名前マングリングの目的です: 「このクラスの属性」と言うことができます:

class Father():
    def __init__(self):
        self.name=self.__getName()
        print "from Father ->", self.name
    def __getName(self):
        return "father"

class Child(Father):
    def __init__(self):         
        Father.__init__(self)
        self.name=self.__getName()
        print "from Child ->", self.name

    def __getName(self):
        return "child"

if __name__ == "__main__":
    import sys, pprint

    someone=Child()

収量

from Father -> father
from Child -> child

詳細については、この投稿も参照してください。

于 2013-02-28T16:27:56.257 に答える