[i]長的代碼不麻煩各位大佬看,我說一下我的問題。
首先我的類是這樣的

在這個類中,定義了屬性distance,13行就是一個計算距離的式子,我試過,這個dis變數就是一個數。
在計算的程序中,我有一個步驟是:
s=s+li[p].classid/li[p].distance(t[i])
分子中的classid是一個數,問題來了,如果按上圖給dis以self.dis賦值的時候,這個算式中的分母不能計算,顯示如下錯誤,應該是分母不是數值型別:

但是我把第一張圖中最后屬性下面加上一句return dis,這時候就可以計算上面那個式子了。
如果我不加return dis,下面的式子究竟要怎么操作才能參考這個類-屬性下計算出的dis呢。
所以我想問的主要是如果這個屬性(就是我這里面的distance下面)有多個值dis1、dis2、dis3的時候,外面的計算如何單獨呼叫這三個dis值?
大佬幫幫忙謝謝,本人萌新剛接觸python
uj5u.com熱心網友回復:
本人萌新,希望大佬能講的簡單明了一些謝謝uj5u.com熱心網友回復:
如果也是在類里,用self.dis試試uj5u.com熱心網友回復:
因為你這個函式沒有回傳值,所以不能進行計算,加上return后有了回傳值型別為數值型,就能進行計算,可以把dis放在類屬性中,以類屬性呼叫就不用加return回傳值了
uj5u.com熱心網友回復:
我這里面類下面就dis一個值,那么我return dis 的話li[p].distance(t[i])這個值就是這個dis。但是如果我類中間有dis1、dis2、dis3三個值,如果return dis1,dis2,dis3的話,那么我在外面如何單獨呼叫其中一個比如dis2?
uj5u.com熱心網友回復:
如果只需要單獨呼叫dis,就只回傳dis2就好了,如果是
都需要回傳,
dis1,dis2,dis3=函式()
以后直接采用dis2就行
uj5u.com熱心網友回復:
retrun (dis1,dis2,dis3)或
retrun [dis1,dis2,dis3]
呼叫者訪問時直接按元組或串列對應下標訪問即可!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/63764.html
