对象类和随机变量

时间:2015-11-25 23:59:44

标签: python object random

我正在写一个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)

1 个答案:

答案 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或体重不高的狗(虽然不应该区分狗的外表)。