<h2>问题</h2>
<p>你需要把这个对象作为论据交出来。你知道吗</p>
<p>在函数中:</p>
<pre><code>def knightofni(obj):
obj.number = 1
obj.who = "We've encountered Knight of Ni."
</code></pre>
<p>在课堂上使用时:</p>
<pre><code>enemies.knightofni(self)
</code></pre>
<p>对<code>frenchman()</code>执行相同的操作。你知道吗</p>
<h2>完整代码</h2>
<p><code>grail.py</code></p>
<pre><code>import enemies
class Encounter:
def __init__(self):
self.counter = 1
self.number = 0
self.who = "We've encountered no one."
def forward(self):
if self.counter == 1:
enemies.knightofni(self)
elif self.counter == 2:
enemies.frenchman(self)
else:
self.number = 42
self.who = "We've found the Grail!"
self.counter += 1
knight = Encounter()
for i in range(4):
print(str(knight.number) + " " + knight.who)
knight.forward()
</code></pre>
<p>和<code>enemies.py</code>:</p>
<pre><code>def knightofni(obj):
obj.number = 1
obj.who = "We've encountered Knight of Ni."
def frenchman(obj):
obj.number = 4
obj.who = "We've encountered French."
</code></pre>
<p>输出:</p>
<pre><code>0 We've encountered no one.
1 We've encountered Knight of Ni.
4 We've encountered French.
42 We've found the Grail!
</code></pre>