阅读Python 3.1的变化,我发现了一些...意想不到的事情:
sys.version_info元组现在是一个命名的元组:
我从来没有听说过命名元组,我认为元素可以通过数字(如元组和列表)或键(如在字典中)进行索引。我从来没有想到他们可以被两种方式索引。
因此,我的问题是:
对于对象/模块,你也可以
'var' in dir(obj)
例如,
>>> class Something(object):
... pass
...
>>> c = Something()
>>> c.a = 1
>>> 'a' in dir(c)
True
>>> 'b' in dir(c)
False
使用try / except是测试变量存在的最好方法。但是,设置/测试全局变量几乎肯定是一个更好的方法。
例如,如果你想在第一次调用某个函数的时候初始化一个模块级的变量,那最好用这样的代码:
my_variable = None
def InitMyVariable():
global my_variable
if my_variable is None:
my_variable = ...