我正在写一个Dog类,这样创建的每个dog对象都包含高度和权重字段变量。这些中的每一个都应该为每只狗随机初始化。应将高度初始化为[1.00,100.0] cm范围内的随机浮动。重量应在[0.7,20] kg范围内随机初始化。我有这个,但它不会输出。我在做什么?
班级狗: 随机导入
def_init_(self,heihgt,weight):
self.height = height
self.weight = weight
r = random.random()
a = dog(0.0,101.0)
b = dog(0.6,21.0)
答案 0 :(得分:0)
如果您将每只狗的高度和重量作为参数传递给它,则明确设置它们的高度和重量。如果你想用随机值初始化,不要过分传递任何变量:
>>> 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或体重不高的狗(虽然不应该区分狗的外表)。