2

すべての子クラスのベース クラスである Python でベースの抽象クラスを作成し、すべての子クラスに毎回書き込むのに冗長ないくつかの関数を実装します。

class Element:

    ###SITE###
    __sitedefs = [None]

    def getSitedefs(self):
        return self.__sitedefs


class SRL16(Element):

    ###SITE###
    __sitedefs = ['SLICEM']

値を宣言するベースクラスから値を取得しますが、それ以外の場合は子クラスで上書きするため、結果は論理的です。私の質問は、から取得する方法です

srl = SRL16()
srl.getSitedefs()

SLICEM が NONE でない

おそらく私は非常に基本的なことを誤解していますが、助けてください。

よろしくお願いします

4

1 に答える 1

7

あなたの問題は、名前のマングリングが原因です。例を参照してください:オブジェクト名の前にある単一アンダースコアと二重アンダースコアの意味は何ですか? .

__sitedefsすべてを変更すると_sitedefs、すべてが期待どおりに機能するはずです。

于 2013-10-10T14:57:20.483 に答える