你明確地設定各犬的身高和體重,如果你把它作爲這樣的參數。如果你想使用隨機值初始化,不經過任何變量打擾:
>>> import random
>>> class dog():
def __init__(self):
self.height = random.uniform(1.0,100.0)
self.weight = random.uniform(.7,20.0)
>>> dog1 = dog()
>>> dog1.height
79.21247401443837
>>> dog1.weight
16.713010614190193
>>> dog2 = dog()
>>> dog2.height
48.90049233226392
但是,如果你想允許根據需要還明確規定身高和體重,你可以有默認參數:
>>> class dog():
def __init__(self,height = None, weight = None):
self.height = height if height else random.uniform(1.0,100.0)
self.weight = weight if weight else random.uniform(.7,20.0)
>>> dog().height
78.10866941943496
>>> dog().height
50.715307081419276
>>> dog(20).height
20
順便說一句,如果你輸入0
爲您的身高或體重中,init將評估作爲假,因此將選擇一個隨機浮動,而不是將其設置爲0。我把它喜歡這樣,因爲我認爲你永遠不會想要一隻身高或體重爲0的狗(儘管不應該歧視狗的外表)。
那麼,我不認爲這是句法有效的Python(def_init_?)。第二,你的意思是「它不會輸出」?你的意思是它不會打印到屏幕上?但是,沒有任何地方打印的電話...... – jme
儘管所有提到的事情@jme,隨機float random.uniform https://docs.python.org/2/library/random.html#random.uniform – kwarunek