我正在爲一個作業類編寫一段代碼,它應該允許我計算關於兩個列表的各種距離統計信息。然而,當我分配名單類,並嘗試打印的功能之一的結果,我得到的錯誤,Python類顯示名稱未定義
NameError: name 'ratings1' is not defined
導致我相信我做了正確無論是在我的__init__
功能或在函數中引用。你能幫助澄清我做錯了什麼嗎?
class similarity:
def __init__(self, ratingX, ratingY):
self.ratings1=ratingX
self.ratings2=ratingY
def minkowski(self,r):
self.r=r
mink=0
length=len(ratings1)
for i in range(0,length):
mink=mink+(abs(ratings1[i]-ratings2[i]))**r
mink=mink**(1/r)
result='Given r=%d, Minkowski distance=%f'%(r,mink)
return result
def pearson(self):
Xavg=average(ratings1)
Yavg=average(ratings2)
n=len(ratings1)
diffX=[]
diffY=[]
for i in range(0,n):
diffX.append(ratings1[i]-Xavg)
diffY.append(ratings2[i]-Yavg)
return diffX
diffXY=[]
for i in range(0,n):
diffXY.append(diffX[i]*diffY[i])
example2=similarity([1,3,5,5,6],[4,6,10,12,13])
print(example2.pearson())
注意:如果我在函數中將「rating1/2」的引用更改爲「ratingsX/Y」,則此錯誤仍然存在。
可能重複[Python - 爲什麼這個類的變量沒有在方法中定義?](http://stackoverflow.com/questions/12790114/python-why-is-this-class-variable-not-defined-在方法)或[爲什麼實例變量不被識別](http://stackoverflow.com/questions/26728585/why-is-instance-variable-not-getting-recognized) –