擅长:python、mysql、java
<p>定义dict时,它实际上是调用函数,并将返回值存储在字典中。为了让字典存储对函数的引用,您需要删除后面的括号。比如说:</p>
<pre><code>scramble = { 0: self.up_turn,
1: self.down_turn,
etc.
</code></pre>
<p>然后,在底部,调用<code>scramble[i]()</code>。</p>
<p>这将调用不带参数的函数。要处理将“inversed”作为参数传递的情况,可以定义单独的函数,如up_turn_inversed(),等等,也可以让字典存储一个由函数和参数组成的二元组,然后调用<code>scramble[i][0](scramble[i][1])</code></p>
<p>从评论中的建议更新:
还可以使用lambda表达式定义函数,特别是需要参数的函数。这基本上等同于定义一个up-turn-inversed函数,但是作为一个匿名函数来实现。看起来是这样的:</p>
<pre><code>6: lambda: self.up_turn("inverted")
7: lambda: self.down_turn("inverted")
</code></pre>
<p>等等</p>