Pythonでは、クラスを定義するときに、新しい属性定義で以前に定義された属性を参照することなく使用できます。Python:クラスレベルの属性定義でスーパー属性にアクセスする方法
class Parent(object):
a_value = 'a'
another_value = 'b'
all_values = (a_value, another_value)
派生クラスで同じことを実行できますが、これらの親属性の一部にはまだアクセスできますか?
私はこのような何かやってみました:
class Child(Parent):
a_child_value = 'c'
all_values = (a_value, another_value, a_child_value)
をしかし、それは考慮に親の継承を取らないようだと私は次のエラーを与える:
NameError: name 'a_value' is not defined
ので、そこにありますa_value
とanother_value
が現在のコンテキストではなく親クラスのものでなければならないことを示す方法はありますか?
私の場合、特に値は文字列ではなく、あらかじめコンパイルされた正規表現なので、新しいインスタンスが作成されるたびに__init__
メソッド内に作成する必要はありません。
@Moses Koledoye:私はこれを重複とはみなしませんでした。私が探していた情報が暗黙のうちに含まれていましたが、何が尋ねられているかは異なります。私はどこでも見つけられないので何かをする方法について尋ねました。そしてその質問は「なぜ」それがこのように行われなければならないのかを尋ねます。 –
あなたの質問に答えている以上の欺瞞標的。それはあなたが望むものをより詳細に記述します。なぜ、どのように。質問は全く同じである必要はありません。 –