我想初始化两个类变量:第一个是常量,第二个是基于第一个常量的值构建的列表(或集合,字典等)。我想做的一个例子,没用:
class ThisDoesntWork:
SOME_CONST = "hello"
SOME_OTHER_CONST = list(SOME_CONST + str(i) for i in range(4))
结果:
NameError: name 'SOME_CONST' is not defined
在另一个答案中,只要没有列表,字典,集合,以下代码即可工作:
class ThisWorks:
SOME_CONST = "hello"
SOME_OTHER_CONST = SOME_CONST + str(1)
感觉好像我在类和名称空间的工作方式上缺少一些核心概念,这破坏了第一个示例,但没有破坏第二个示例。这是什么,什么是做好这项工作的好方法?