4

したがって、Python では、次のようなクラスが 1 つあります。

class Parent(object):
    ID = None

    @staticmethod
    def getId():
        return Parent.ID

次に、次のように、子クラスで ID をオーバーライドします。

class Child(Parent):
    ID = "Child Class"

getId()今、私は子のメソッドを呼び出したい:

ch = Child()
print ch.getId()

「Child Class」を見たいのですが、代わりに「None」が表示されます。
Pythonでそれを達成するにはどうすればよいですか?

PS:ch.ID直接アクセスできることはわかっているので、これはより理論的な質問かもしれません。

4

1 に答える 1

7

クラス メソッドを使用します。

class Parent(object):
    ID = None

    @classmethod
    def getId(cls):
        return cls.ID

class Child(Parent):
    ID = "Child Class"

print Child.getId() # "Child Class"
于 2013-10-19T14:27:45.530 に答える