【发布时间】:2020-05-25 02:31:34
【问题描述】:
我怎样才能实现这样的目标?
class myClass(static_variable):
static_var = static_variable
def __init__(self, x):
self.x = x + static_var
obj = myClass(static_variable = 3)(x = 5)
#obj.x = 8
[编辑]
一个更好的问题是“如何在运行时初始化一个类静态变量?”,但是 python 被解释了,所以我不知道这是否是一个更好的问题。
【问题讨论】:
-
只有我一个人认为这看起来很可疑吗?这是XY 吗?
-
如果你需要一个在所有类中都是常量的变量,然后各个对象彼此分开添加这个常量值来创建最终属性,那么为什么不直接创建最终值,保持这个值“常量”作为 init 的参数,甚至是 init 中的默认值,甚至只是硬编码?
-
编写一个创建类并返回它的函数。
-
您想要一种 种
myClass的某些值为static_var,还是您想要几种 种myClass每个都有static_var的单独值? -
类定义被评估,它们可以访问该定义发生的范围(以及围绕它的词法)中的值。你可以定义一个
static_variable,然后运行class代码,如果你去掉myClass之后的括号。
标签: python class static-variables