Skip to main content
 首页 » 编程设计

python之如何将驻留在同一模块上的另一个类的实例分配给类属性

2025年05月04日11mayingbao

我想不出解决这个问题:

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 

有什么想法吗?提前致谢

请您参考如下方法:

Clazz1 必须在 Clazz 之前定义:

class Clazz1: 
    def __init__(self, key, value): 
        self.key = key 
        self.value = value 
 
 
class Clazz: 
    EMPTY = Clazz1(None, None) 
 
    def __init__(self): 
        self.item = Clazz1("a", "b") 
 
 
if __name__ == '__main__': 
   h = Clazz()