我有一個名為的父類Organism,它有一個名為的類屬性isIntelligent,我同樣創建了一個fitness基于類屬性值的變數isIntelligent:
class Organism:
isIntelligent = False
def __init__(self):
#some variables defined here
if isIntelligent:
@property
def fitness(self):
return 0
現在,我想創建兩個子類,例如Rabbitand Fox,我希望 Rabbits 聰明而 Foxs 不聰明。據此,他們應該擁有fitness財產。
我也嘗試更改isIntelligent子類中變數的值:
class Rabbit(Organism):
isIntelligent = True
class Fox(Organism):
isIntelligent = False
但是,當我運行代碼時,我希望 Rabbit 物件具有fitness變數,但它們沒有。
這樣做的正確方法是什么?
uj5u.com熱心網友回復:
定義類時執行不在方法中的代碼,因此它不能依賴于實體。您需要將條件放在屬性方法中。
@property
def fitness(self):
if self.isIntelligent:
return 0
else:
return 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/450468.html
上一篇:物件的方法是如何使用和存盤的
