<p>您的代码有几个问题:</p>
<ol>
<li><p>在第<code>go = DiceGame(Die)</code>行上,类Die将作为面发送到构造函数中。试试<code>go = DiceGame()</code></p></li>
<li><p>不能在第<code>print(go.play)</code>行上调用play方法。试试<code>go.play()</code></p></li>
<li><p><code>random.randint(1,2)</code>返回整数对象。与“1”进行比较总是会导致False</p></li>
<li><p>在您的代码中,实际上并没有滚动</p></li>
</ol>
<p>固定代码:</p>
<pre><code>import random
class Die(object):
def __init__(self, face=None, faceValue=None):
self.face = face
self.faceValue = faceValue
def roll(self):
self.faceValue = random.randint(1, 6)
if self.faceValue == 1:
self.face = (
' \n'
'| |\n'
'| o |\n'
'| |\n'
' ')
elif self.faceValue == 2:
self.face = (
' \n'
'| o |\n'
'| |\n'
'| o |\n'
' ')
elif self.faceValue == 3:
self.face = (
' \n'
'| o |\n'
'| o |\n'
'| o|\n'
' ')
elif self.faceValue == 4:
self.face = (
' \n'
'| o o|\n'
'| |\n'
'| o o|\n'
' ')
elif self.faceValue == 5:
self.face = (
' \n'
'| o o|\n'
'| o |\n'
'| o o|\n'
' ')
elif self.faceValue == 6:
self.face = (
' \n'
'| o o|\n'
'| o o|\n'
'| o o|\n'
' ')
def __str__(self):
return str(self.face)
class DiceGame(Die):
def play(self):
self.roll()
print(self.face)
go = DiceGame()
go.play()
</code></pre>
<p>另一种滚动方法可以是:</p>
<pre><code> def roll(self):
self.face_value = random.randint(1, 6)
self.face = u"⚀⚁⚂⚃⚄⚅"[self.face_value-1]
</code></pre>
<p>但是您可能需要添加<code># -*- coding: utf-8 -*-</code>作为代码的第一行来表示编码</p>