因此,假设您有一个带变量的应用程序,您将在独立加载它时(即使用时if __name__ == '__main__')创建一个实例.
此外,还有一种方法可在客户端导入应用程序以在另一个应用程序中使用时调用.此方法还将实例化此变量.
我想要做的是测试变量是否在定义之前已经被实例化(因此我不必经历两次对象的创建).我的直觉告诉我使用,if SOME_VARIABLE is not None: #instantiate here但这会产生错误
赋值前引用的局部变量'SOME_VARIABLE'
是什么赋予了?
Mat*_*son 15
在变量初始化之前访问变量是错误的.未初始化变量的值不是None; 访问它只会引发异常.
如果您愿意,可以捕获异常:
>>> try:
... foo = x
... except NameError:
... x = 5
... foo = 1
Run Code Online (Sandbox Code Playgroud)
在类中,您可以提供默认值None,并检查它是否在特定实例上已更改(假设None不是该特定变量的有效值):
class Foo(object):
bar = None
def foo(self):
if self.bar is None:
self.bar = 5
return self.bar
Run Code Online (Sandbox Code Playgroud)