我有一个全局字典变量,将在被多次调用的函数中使用。我无法控制函数何时被调用,或者我正在编写的函数之外的范围。如果未初始化,我需要初始化该变量。一旦初始化,我将向其添加值。
global dict
if dict is None:
dict = {}
dict[lldb.thread.GetThreadID()] = dict[lldb.thread.GetThreadID()] + 1
很抱歉,我得到了。
NameError: global name 'dict' is not defined
我知道应该先定义变量,但由于这段代码会被多次调用,如果只是简单地写 dict = {}
,那么每次调用时都会重新定义变量,除非我能够判断它是否已经定义,只有在未定义的情况下才进行定义。
NameError
然后在那里设置它... 话虽如此,这似乎是一个奇怪的设计决定。你能提供更多的上下文吗? - mgilsontest2
”,而你的代码中却是dict
,并且在函数外使用了一个global
语句……如果你能提供一个最小的可重现示例,那将非常有帮助。 - mgilsonmy_dictionary = {}
),然后在每个函数中需要时声明global my_dictionary
。作为一个经验法则,我不会使用保留关键字或内置类型名称作为变量名。 - Victor Domingos