为什么我的骰子循环不起作用?

时间:2015-05-25 21:18:27

标签: python class loops

我需要我的代码在一个类中循环5个随机数。在IDLE程序中,它只是无限地停止并且不会停止但我似乎无法找到我的代码的问题。

from random import randint
x = 0
while x < 6:
    class Dice(object):
            def __init__(self):
                    self.dice = []
                    self.dice.append(str(randint(1,6)))
                    x += 1


hand = Dice() # Creates a Dice object
print hand.dice # Prints the instance variable dice (5 random numbers)

2 个答案:

答案 0 :(得分:0)

您的Shane循环只定义了一个类,但它并没有实际评估任何代码。特别是,它不会增加provider/service,所以它是一个无限循环。

我想你可能想要在构造函数中使用while循环,而不是相反。

答案 1 :(得分:0)

您正在循环中定义一个类对象。定义类不会执行其中定义的__init__方法。

这不同于x方法中的__init__变量是本地的,独立于x循环中测试的全局while。< / p>

将循环放在__init__方法中,以便在创建Dice类的实例时运行它:

from random import randint

class Dice(object):
    def __init__(self):
        self.dice = []
        x = 0
        while x < 6:
            self.dice.append(str(randint(1,6)))
            x += 1

hand = Dice() # Creates a Dice object
print hand.dice # Prints the instance variable dice (5 random numbers)