【发布时间】:2020-10-15 03:14:08
【问题描述】:
如何在另一个类中创建需要参数的类的实例,并随机生成参数?
在下面的代码中,我有一个接受“高度”参数的“方形”类。然后我根据“正方形”创建一个“立方体”。问题在于“CubeTower”类中的“add_cube”方法,我无法确定是否需要提供“立方体”和“高度”或仅提供这些参数之一。当我尝试在创建具有随机边高的立方体的循环内调用“add_cube”时,这反过来会引发错误。
(我在 'Cube' 类中还有其他方法,但它们与这个问题无关,所以我没有包括它们)。
from random import randint
class Square:
def __init__(self, height):
self.height = height
class Cube:
def __init__(self, height):
self.base = Square(height)
class CubeTower:
def __init__(self):
self.tower = []
def add_cube(self, cube, height): # This is where I think I am doing something wrong
cube = Cube(height)
if not self.tower:
self.tower.append(cube)
else:
if cube.base.height < self.tower[-1].base.height:
self.tower.append(cube)
def randomize_tower(self):
for c in range(2, 100):
height = randint(1, 100)
c = Cube(height)
self.add_cube(c, height)
【问题讨论】:
-
你为什么将
cube作为参数传递,只用你在里面创建的对象立即覆盖它?
标签: python class random methods arguments