由於此錯誤,我無法繼續執行下一個任務。我已經搜索了有關錯誤,並做了別人的建議,但它不適用於我的代碼。所以我希望有人能幫助我。這裏是我的代碼:UnboundLocalError:賦值之前引用的局部變量'QN_WA'Python 3.4
if self.techskills == 11:
c = con.execute("SELECT Centroid FROM Centroid WHERE ItemID = 25")
TS_centroid = c.fetchone()[0]
TS_AA = (min(a1, a2) * TS_centroid) + (pow(a3,2))
TS_BB = (min(a1, a2) + a3)
TS_WA = TS_AA/TS_BB
elif self.techskills == 12:
c = con.execute("SELECT Centroid FROM Centroid WHERE ItemID = 24")
TS_centroid = c.fetchone()[0]
TS_AA = (min(a1, a2) * TS_centroid) + (pow(a3,2))
TS_BB = (min(a1, a2) + a3)
TS_WA = TS_AA/TS_BB
if self.qualityofwork == 11:
c = con.execute("SELECT Centroid FROM Centroid WHERE ItemID = 25")
QL_centroid = c.fetchone()[0]
QL_AA = (min(a4, a5) * QL_centroid) + (pow(a6,2))
QL_BB = (min(a4, a5) + a6)
QL_WA = QL_AA/QL_BB
elif self.qualityofwork == 12:
c = con.execute("SELECT Centroid FROM Centroid WHERE ItemID = 24")
QL_centroid = c.fetchone()[0]
QL_AA = (min(a4, a5) * QL_centroid) + (pow(a6,2))
QL_BB = (min(a4, a5) + a6)
QL_WA = QL_AA/QL_BB
overall = (TS_WA + QL_WA)/2
print(overall)
我只是縮短了代碼,使其簡短。我得到這個代碼:
Traceback (most recent call last):
overall = (TS_WA + QL_WA)/2
UnboundLocalError: local variable 'QL_WA' referenced before assignment
它在一個函數中,所以它會是一個UnboundLocalError。全局與它無關 – 2015-02-08 18:30:21
'if'引用'self'但你說它是在一個函數中。即使它是在一個函數從未分配變量獲取NameError。 – 2015-02-08 19:28:15
在內部作用域中分配給先前在外部作用域中分配的var會使作用域的局部變量爲var。訪問也很好,它會得到最後的分配。 **在轉讓之前引用**錯誤意味着它是對本地一個礦石的有意義的引用。 – 2015-02-08 19:45:09