使用Python

时间:2018-04-11 14:43:35

标签: python python-3.x class constants

我正在尝试创建一个包含多个常量的类(在Python 3.6中)。因为常量是具有大量相关值的列表和字典,所以我想使用其他常量生成一些常量。

在尝试这样做时,我偶然发现了一些我不完全理解的限制。我将在以下示例中显示:

创建类Example1时没有错误:

class Example1:  # this works
    C1 = [1, 2, 3]
    C2 = [2, 3, 4]
    C3 = [C2, C2]
    C4 = [C1[0], C2[2]]
    C5 = [str(c1) for c1 in C1]
    C6 = [c1 + c2 for c1, c2 in zip(C1, C2)]

然而,尝试创建Example2

class Example2:  # this doesn't work
    C1 = 1
    C2 = [1, 2, 3]
    C3 = [C1 + c2 for c2 in C2]

在尝试创建NameError: name 'C1' is not defined时引发C3

Example3也是如此:

class Example3:  # this doesn't work
    C1 = [1, 2, 3]
    C2 = [2, 3, 4]
    C3 = [c1 + c2 for c2 in C2 for c1 in C1]

有人可以解释为什么Example2Example3无法正常工作但Example1有效吗?这里的规则是什么?是否有其他方法可以在类C3Example2内初始化常量Example3

P.S。很抱歉要求多个子请求。

0 个答案:

没有答案