クラスそのものを参照しようとしています。例えば、Python:内部でクラスを参照する方法は?
class Test:
FOO_DICT = {1 : Test.bar} # NameError: name 'Test' is not defined
@staticmethod
def bar():
pass
この使用法は意味がありますか?より良い選択肢はありますか? ありがとう!
クラスそのものを参照しようとしています。例えば、Python:内部でクラスを参照する方法は?
class Test:
FOO_DICT = {1 : Test.bar} # NameError: name 'Test' is not defined
@staticmethod
def bar():
pass
この使用法は意味がありますか?より良い選択肢はありますか? ありがとう!
:最初の関数を定義し、テストを削除します。
class Test:
@staticmethod
def bar():
pass
FOO_DICT = {1: bar}
おそらく順序依存性を避けるべきですが、より良いパターンがないようです。 – cheng
あなたは、このようなクラスのFOO_DICT = {1 : Test.bar}
外を移動することができます:あなたは辞書はクラスになりたい場合は
class Test:
@staticmethod
def bar():
pass
Test.FOO_DICT = {1: Test.bar}
これはクラスのカプセル化に違反し、避けるべきです。 – DyZ
ただ、 'バーを使用します'それ自体。 – DyZ
@DYZ 'bar'はまだ定義されていないので、うまくいきません。 –
下記のように、定義の順序を変更してください。 – DyZ