我的程序应该模拟两个骰子,但我遇到了问题。这是我的代码:

import random

#Dice class simulates both a single and two dice being rolled
#sideup data attribute with 'one'

class Dice:
    #sideup data attribute with 'one'

    def __init__(self):
        self.sideup='one'
    def __init__(self):
        self.twosides='one and two'

 #the toss method generates a random number
 #in the range of 1 through 6.


    def toss(self):
        if random.randint(1,6)==1:
            self.sideup='one'
        elif random.randint(1,6)==2:
            self.sideup='two'
        elif random.randint(1,6)==3:
            self.sideup='three'
        elif random.randint(1,6)==4:
            self.sideup='four'
        elif random.randint(1,6)==5:
            self.sideup='five'
        else:
            self.sideup='six'
    def get_sideup(self):
        return self.sideup
    def doubletoss(self):
        if random.randint(1,6)==1 and random.randint(1,6)==2:
            self.twosides='one and two'
        elif random.randint(1,6)==1 and random.randint(1,6)==3:
            self.twosides='one and three'
        elif random.randint(1,6)==1 and random.randint(1,6)==4:
            self.twosides='one and four'
        elif random.randint(1,6)==1 and random.randint(1,6)==5:
            self.twosides='one and five'
        elif random.randint(1,6)==1 and random.randint(1,6)==6:
            self.twosides='one and six'
        elif random.randint(1,6)==1 and random.randint(1,6)==1:
            self.twosides='one and one'
    def get_twosides(self):
        return self.twosides






#main function
def main():
    #create an object from the Dice class
    my_dice=Dice()


    #Display the siide of the dice is factory
   print('This side is up',my_dice.get_sideup())

    #toss the dice
    print('I am tossing the dice')
    my_dice.toss()

    #toss two dice
    print('I am tossing two die')
    my_dice.doubletoss()

   #Display the side of the dice that is facing up
    print('this side is up:',my_dice.get_sideup())

    #display both dices with the sides of the dice up
    print('the sides of the two dice face up are:',my_dice.get_twosides())



main()


这是我运行程序时的输出:


  “追踪(最近一次致电过去):
    文件“ C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py”,第79行,在
      主要()
    主文件“ C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py”,第61行
      print('这面朝上',my_dice.get_sideup())
    get_sideup中的文件“ C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py”,第32行
      返回self.sideup
  
  AttributeError:“骰子”对象没有属性“ sideup”


我究竟做错了什么?

最佳答案

您有两种初始化方法。第二个替换第一个,否定您对sideup的定义。

改成:

def __init__(self):
    self.sideup='one'
    self.twosides='one and two'

10-06 04:28