还有另一种方法可以让静态变量依赖于以前的变量吗?
Is there another way to have static variables depend on previous ones?
我想做这样的事情:
class Foo:
A = some_constant
B = Foo.A + 2
...
这不起作用,因为我无法在 B
的赋值中引用 Foo
。
我知道使用全局变量会起作用:
A = some_constant
B = A + 2
class Foo:
...
或者在 class 定义之后分配变量会起作用:
class Foo:
...
Foo.A = some_constant
Foo.B = Foo.A + 2
然而,第一个没有提供我想要的范围,而第二个在我的代码组织方面相当笨拙,因为它迫使我在 class 定义之后定义这些变量.
还有其他方法可以解决这个问题吗?
我不明白为什么这行不通:
class Foo:
A = some_constant
B = some_constant + 2
...
您可以在声明中直接使用 class 变量(不带前缀)。但请记住,这是一件 one-time 的事情。稍后更改 Foo.A 将不会更新 Foo.B。
class Foo:
A = 98
B = A + 2
我想做这样的事情:
class Foo:
A = some_constant
B = Foo.A + 2
...
这不起作用,因为我无法在 B
的赋值中引用 Foo
。
我知道使用全局变量会起作用:
A = some_constant
B = A + 2
class Foo:
...
或者在 class 定义之后分配变量会起作用:
class Foo:
...
Foo.A = some_constant
Foo.B = Foo.A + 2
然而,第一个没有提供我想要的范围,而第二个在我的代码组织方面相当笨拙,因为它迫使我在 class 定义之后定义这些变量.
还有其他方法可以解决这个问题吗?
我不明白为什么这行不通:
class Foo:
A = some_constant
B = some_constant + 2
...
您可以在声明中直接使用 class 变量(不带前缀)。但请记住,这是一件 one-time 的事情。稍后更改 Foo.A 将不会更新 Foo.B。
class Foo:
A = 98
B = A + 2