使用随机的多值属性创建一个类

时间:2013-12-08 21:59:44

标签: python class random

我正在努力编写我的第一个程序。基本上,将有两个对象,例如,由5个属性组成。然后,每个属性由两个参数randint(1, 6)randint(1, 20)定义。然后,程序将评估Object1的每个属性与Object2的每个属性的关系。

我正在尝试创建一个可以生成这两个对象的类,但我能想到的就是这个......

from random import randint

    class Object:
        def __init__(self):
            self.Attribute1a = randint(1,6)
            self.Attribute1b = randint(1,20)
            self.Attribute2a = randint(1,6)

依旧......

另外,有没有办法为每个属性分配两个或多个参数,这样我就可以拥有AttributeX,而不是AttributeXa,然后是AttributeXb?

1 个答案:

答案 0 :(得分:1)

您正在寻找的是一个元组:self.Attribute1 = (randint(w,x), randint(y,z)) 其中w,x,y和z是你想要的任何常数。然后,您可以通过单独访问每个列来比较它们:Attribute1[0]Attribute1[1]

这是一个想法:让我们尝试采用您的第一个程序概念,并使其更加面向对象。虽然你描述的程序有效,但我认为你对练习课间关系更感兴趣 - 如果我在这里错了,请纠正我。如何创建两个类:RandomObjectARandomObjectB。在这两个类中,定义一组变量,然后在main方法中对它们进行比较。这将真正帮助您了解编程如何在对象级别上运行,这是一个比特定数据结构更重要的课程。

成功完成后,我会为每个类添加一些方法;你怎么能让类不直接与其他类中的属性交互?

在那之后,我会研究继承。如果我们要创建100个名为RandomObjectX的类,该怎么办?显然,对每个最后一个进行手动编码是不合理的,所以让我们考虑一下如何从更高级的类中派生出功能,称为超类。

最后,虽然我很欣赏您正在努力尝试,但我强烈建议您阅读Python教程和文档。老实说,这不是一个难以理解的内容,你会学到很多东西,并且你可以更好地了解编码时到底发生了什么。如果将实践练习和个人项目与阅读文档相结合,编码就会变得更加容易。祝你好运!