无法更改python中if语句中方法变量的值
当运行上述方法时,即使数据库中没有用户,它也不会打印“数据库中没有用户”。if块中的变量无法更改python中if语句中方法变量的值,python,python-2.7,Python,Python 2.7,当运行上述方法时,即使数据库中没有用户,它也不会打印“数据库中没有用户”。if块中的变量no_user警告未使用该变量 我理解这是由于范围的原因,如果no\u user变量是全局变量而不是方法变量,则可以解决这一问题。但在这种情况下,我需要它位于方法内部,并在db中没有用户时更改为True。我想,您应该修改部分,如下所示: def a(): no_user = False number_of_users = # gets number of users from db i
no_user
警告未使用该变量
我理解这是由于范围的原因,如果
no\u user
变量是全局变量而不是方法变量,则可以解决这一问题。但在这种情况下,我需要它位于方法内部,并在db中没有用户时更改为True。我想,您应该修改部分,如下所示:
def a():
no_user = False
number_of_users = # gets number of users from db
if number_of_users == 0:
no_user = True
if no_user:
print("no users in db")
else:
print(number_of_users)
因为如果用户的数量>0,那么就有用户,没有用户应该为false我看不出有任何问题。这是实际代码吗?局部变量
没有用户
在函数/方法中的任何地方都是绝对可更新的“我知道这是因为范围”为什么这么说?几乎可以肯定,这不是一个范围问题。你的逻辑没有道理,如果用户数>0
,为什么会没有用户。。。?如果number of_users==0,那么就不会有用户了。
@juanpa.arrivillaga仍然,在no_user
@RajyawardhanSinghPanwar上不应该有一个“unused var”警告,不管你如何,你可以通过分配一个实际的数字,运行函数,使用不同的数字,非常清楚地为自己测试出来,看到你实际上可以改变这个值。除非你能提供答案,否则这个问题将被取消-topic@RajyawardhanSinghPanwar如果getNumberOfUsers()<1:或类似的方法,为什么不直接执行。这意味着对数据库的查询结果直接输入if语句,而不是执行其他一些不必要的代码。。。它应该和现在一样工作。如果用户数为0
,则no\u user=True
。。。这有什么错?不过,为了确定,如果数据库不存在或者程序无法从文件中读取或创建列表,我会做如果用户数==0,用户数==-1
,那么用户数可以返回-1,我没有看到问题被编辑。很抱歉无论如何,现在的答案是不相关的。而且,如果用户数==0,用户数==-1,没有任何意义。。。也许。。。或者…
是的,它应该是或者肯定是。检查“不存在”条件应该是一个好的编程习惯。
if number_of_users > 0:
no_user = False