![](/img/trans.png)
[英]UnboundLocalError UnboundLocalError: local variable 'username' referenced before assignment
[英]UnboundLocalError: local variable 'username' referenced before assignment (in a return part of a function)
def login():
userinfo = open("userinfo.txt","r")
userinforec = userinfo.readline()
username1 = input("What is your username?\n")
while userinforec != "":
field = userinforec.split(",")
username = field[0]
password = field[1]
name = field[2]
age = field[3]
year = field[4]
mathseasy = field[5]
mathsmed = field[6]
mathshard = field[7]
hiseasy = field[8]
hismed = field[9]
hishard = field[10]
if username != username1:
print("Error, username not found")
break
else:
password1 = str(input("What is your password?\n"))
if password == password1:
print("password accepted")
writereport(username)
else:
print("Error, password not accepted")
login()
userinforec = userinfo.readline()
userinfo.close()
return username
恰如標題中所述,當我運行這段代碼時,它說在分配之前引用了最后一行(返回用戶名)。
UnboundLocalError:分配前已引用本地變量“用戶名”
我查看了其他線程,如果變量在函數之外,則全部發生,但在這里不是。 我仍然需要使用global
還是有其他解決方法?
如果您的while循環從未輸入,例如因為userinforec == ""
那么您在返回username
之前將其分配任何值。
如果在while循環中從未分配過username = ""
,則在其while循環前添加username = ""
,以便它具有一個值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.