1

メンバーを検査してリストできるようにしたいクラスがあります。ただし、これをサブクラス化するだけなので (C++ ではこれは抽象クラスになります)、このメソッドがその子クラスのメンバーも返すようにします。

これはPythonで可能ですか、それとも良い考えですか? そしてフォローアップ、これはinspectモジュールなしで可能ですか?

そのようです:

class A:
    @staticmethod
    def GetMembers():
        return dict(vars(A))

class B(A):
    FOO = 'foobar'
    BAR = 'barfoo'

ただし、テストにより次のことが明らかになりました。

>>> A.GetMembers()
{'__module__': '__main__', '__doc__': None, 'GetMembers': <staticmethod object at 0x02219BB0>}
>>> B.GetMembers()
{'__module__': '__main__', '__doc__': None, 'GetMembers': <staticmethod object at 0x02219BB0>}
>>> dict(vars(B))
{'__module__': '__main__', 'FOO': 'foobar', 'BAR': 'barfoo', '__doc__': None}

B.GetMembers()は含めたいFOOBAR思ってdict(vars(B))います。

4

1 に答える 1