【发布时间】:2014-02-28 14:51:04
【问题描述】:
这是一个相关问题:How do I check if a variable exists?
但是,它不适用于静态变量。
我想做的是以下,
class A:
def __init__(self):
if A.var is null: # this does not work, okay
A.var = 'foo'
print 'assigned'
好的,因为 A.var 甚至没有被分配。它引发了错误。所以,我尝试了这个:
class A:
def __init__(self):
if 'A.var' not in globals(): # this seems to okay, but ..
A.var = 'foo'
print 'assigned'
a = A()
b = A()
结果:
assigned
assigned
这表明if 'A.var' not in globals(): 行无法正常工作。
那么,如何检查 Python 中是否存在静态变量?
【问题讨论】:
-
Python 没有静态变量,所以……你没有。
-
python 中没有静态变量之类的东西——类上的变量简称为类变量。也没有
null(称为None)。另外,您正在寻找hasattr。 -
另外,如何在
__init__函数调用之前分配一个类的属性? -
技术上
A.var是一个类变量,而不是一个静态变量。
标签: python static-members