擅长:python、mysql、java
<p>首先,这类事情很少能与正确的解决方案相媲美,例如使用字典,甚至很少比那些更好。你应该有一个方法<code>addShip(kind, num)</code>,它只做<code>self.ships[kind] += num</code>。更清洁,更容易延长,干燥(不要重复你自己),作为额外的奖励也更快。在</p>
<p>至于错误:<code>listOfPlayerFleets[currentPlayer].methodToCall(num)</code>试图调用名为<code>methodToCall</code>(显然不存在)的方法。<code>getattr(listOfPlayerFleets[currentPlayer], methodNameString)</code>已经为您提供了所需的方法,它是一个<em>绑定方法</em>,即当您调用<code>methodToCall()</code>时,右<code>self</code>被传递。在</p>
<p>另一个错误(<code>'method' object has no ...</code>)是因为模块和其中包含的内容(例如类)之间存在差异。我假设<code>class fleet</code>在一个名为^{<cd10>的模块中?那么你需要<code>fleet.fleet</code>。顺便说一下,类应该在CamelCase中命名-请参阅样式指南<a href="http://www.python.org/dev/peps/pep-0008/" rel="nofollow">PEP 8</a>。在</p>