擅长:python、mysql、java
<p>您不需要将<code>self</code>属性放入<code>sleep</code>函数中。<br/>
完全可以这样做:</p>
<pre><code>class Animal:
def __init__(self):
self.health = 100
self.actions = {} # dictionary of functions
self.initializeAnimal()
def initializeAnimal(self):
self.actions['SLEEP'] = self.initializeSleep() # add sleep function
def initializeSleep(self):
RESTORED_HEALTH += 20
# other constants
def sleep():
self.health += RESTORED_HEALTH
# utilize other constants
return sleep
a = Animal()
print(a.health)
a.actions['SLEEP']()
print(a.health)
</code></pre>
<p>输出:</p>
^{pr2}$
<p>如前所述,您在<code>self.health = RESTORED_HEALTH</code>中输入<code>+=</code>。<br/>
您还错过了<code>self.initializeSleep()</code>中的<code>self</code></p>