-3
我有一個設想,當生命受到< = 0返回false的函數:如何在類中返回False函數?
def isAlive(self):
if self.lives <= 0:
return False
return True
但它總是返回true。
我有一個設想,當生命受到< = 0返回false的函數:如何在類中返回False函數?
def isAlive(self):
if self.lives <= 0:
return False
return True
但它總是返回true。
我敢打賭,實際的問題是lives
不是一個數字,而是其他的東西,比如字符串'0'
或者列表[0]
。
在Python 2.x中,比較類似的無比類型的值時,它只是比較類型。*因此,每個str
或list
都大於每個int
。因此,沒有str
或list
永遠是< =任何int
。你可以從交互式解釋見:
>>> '2' <= 2
False
>>> 'abcdefg' <= 2
False
>>> [2] <= 2
False
>>> [] < = 2 假
要驗證這就是問題所在,並開始調試它,嘗試print
荷蘭國際集團出self.lives
和type(self.lives)
,看看你得到什麼。如果它不是一個數字,請輸入int
,這就是你必須解決的問題。
這個問題的解決方法是弄清楚你在代碼中早些時候如何在self.lives
中得到錯誤的值類型,並且無論你在那裏做錯了什麼,都不要這樣做。
*它不能保證它們是按類型排序的,並且類型本身的排序絕對不能保證。但無論如何,這並不重要,因爲即使您確實知道排序,也很難想象您會想要將它用於任何有用的事情。
然後'self.lives'大於0.你可以直接返回倒數表達式:'return self.lives> 0'。 –