代码:
assets = {} # line 1
def myfunc():
global assets # line 4
if assets.get("a", None) is None:
assets["a"] = 2
pylint结果:
C: 1, 0: Invalid constant name "assets" (invalid-name)
C: 4, 4: Invalid constant name "assets" (invalid-name)
W: 4, 4: Using global for 'assets' but \
no assignment is done (global-variable-not-assigned)
该函数将不止一次被调用一次,所以我只想(在现实生活中一些耗时的过程)才赋值一次。
我应该如何正确做?
p.s .:谢谢@deceze,我感到困惑的是,如果我使用assets = {}
而不是assets = {"a":2}
,则行为将完全不同。
答案 0 :(得分:4)
短绒棉inter告诉您您没有分配给assets
,意思是assets = ...
。这意味着您不需要global assets
。反之,要读取,外部作用域中的变量assets
将在myfunc
内部可用。如果要为外部作用域中的变量分配不同的值,则仅需要global
。 assets['a'] = 2
并没有为其分配其他值,只是对现有值进行变异。
因此,请删除global assets
行。