1

この問題を解決する方法がわかりません:

class Clazz:
    EMPTY=Clazz1(None,None)

    def __init__(self):
        self.item=Clazz1("a","b")

class Clazz1:
    def __init__(self,key,value):
        self.key=key
        self.value=value

if __name__=='__main__':
   h=Clazz()

実行しようとすると、次のように返されます。

Traceback (most recent call last):
  File "C:\Users\Desktop\test.py", line 1, in <module>
   class Clazz:
  File "C:\Users\Desktop\test.py", line 2, in Clazz
    EMPTY=Clazz1(None,None)
NameError: name 'Clazz1' is not defined

何か案が?前もって感謝します

4

4 に答える 4

1

必要なときは、Clazz1まだ存在しません。

クラス定義はすぐに実行されるため、 のClazz1前に定義する必要がありますClazz

関数定義との違いに注意してください。参照される名前は実行時に存在する必要があります。

def func():
    test = func1()

def func1():
    pass

if __name__=='__main__':
   func()

func()最後に呼び出されると、func1()完全に呼び出せるように存在します。

于 2013-06-21T09:13:42.643 に答える