3 回答
TA贡献1828条经验 获得超3个赞
如果所有代码确实都在模块范围内,那么该global关键字无论如何都不会执行任何操作。您只需要初始化所有名称,因为并非所有分支都必须分配给它们。
nzero = None
ntrue = None
nzero2 = None
ntrue2 = None
n = None # Or something? Who knows?
if admin.isUserAdmin():
if n == 0:
nzero = df.to_string()
print(nzero)
elif n > 0:
ntrue = df.head(n).to_string()
print(ntrue)
while live_update:
if n == 0:
nzero2 = df.to_string()
print(nzero2)
elif n > 0:
ntrue2 = df.head(n).to_string()
print(ntrue2)
TA贡献1836条经验 获得超13个赞
由于您的代码已经在全局范围内,因此无需使用global. 所有变量都已经是全局的。
您会收到错误,因为某些变量是在 if 语句的范围内定义的。如果该 if 子句不执行,则该变量稍后不可用。要解决这个问题,只需在 if 语句之前将变量初始化为合理的值即可:
nzero = False
if admin.isUserAdmin():
...
TA贡献2012条经验 获得超12个赞
问题就出在这里:
if n == 0:
global nzero
nzero = df.to_string()
print(nzero)
elif n > 0:
global ntrue
ntrue = df.head(n).to_string()
print(ntrue)
如果n不是0,则nzero永远不会被定义。
添加回答
举报