当前位置:  开发笔记 > 编程语言 > 正文

理解Python类实例

如何解决《理解Python类实例》经验,为你挑选了1个好方法。

我正在研究一个使用python类的问题,并且有一个构造函数来给出一个die的边数和一个用于根据边数返回的随机数掷出die的函数.我意识到代码是非常基本的,但是我很难理解如何总结三个不同侧面的掷骰子.由于变量正在传递函数实例,因此获取该值的最佳方法是什么?这就是我所拥有的.

*澄清......我可以将roll1.roll_dice()的总数加起来,但我必须单独显示每个掷骰子,然后显示三个骰子的总数.我可以做其中任何一个但不是两个.

class Die():

        def __init__(self, s = 6):
            self.sides = s
        def roll_die(self):
            x = random.randint(1,self.sides)
            return x

        roll1 = Die()   #Rolling die 1 with the default side of 6
        roll2 = Die(4)  #Rolling die 2 with 4 sides
        roll3 = Die(12) #Rolling die 3 with 12 sides

        print roll1.roll_die()  
        print roll2.roll_die()
        print roll3.roll_die()

dF... 10

您可以将结果存储在列表中:

rolls = [Die(n).roll_die() for n in (6, 4, 12)]

然后你可以显示个别结果

>>> print rolls
[5, 2, 6]

或者总结一下

>>> print sum(rolls)
13

或者,相反,您可以保持总计:

total = 0
for n in (6, 4, 12):
    value = Die(n).roll_die()
    print "Rolled a", value
    total += value
print "Total is", total

(编辑以反映对问题的更改/澄清)



1> dF...:

您可以将结果存储在列表中:

rolls = [Die(n).roll_die() for n in (6, 4, 12)]

然后你可以显示个别结果

>>> print rolls
[5, 2, 6]

或者总结一下

>>> print sum(rolls)
13

或者,相反,您可以保持总计:

total = 0
for n in (6, 4, 12):
    value = Die(n).roll_die()
    print "Rolled a", value
    total += value
print "Total is", total

(编辑以反映对问题的更改/澄清)

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有