你明确地设定各犬的身高和体重,如果你把它作为这样的参数。如果你想使用随机值初始化,不经过任何变量打扰:
>>> 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