擅长:python、mysql、java
<p>如果你来自Ruby,那就警告一下:所有python的def基本上都与Ruby的proc相同</p>
<p>Python没有ruby的“def”等价物</p>
<p>通过在调用函数的范围内定义自己的函数,您可以获得与您所要求的非常相似的行为</p>
<pre><code>def quietude(level, my_func):
saved_gval = gval
gval = level
my_func()
def my_func():
razz_the_jazz()
begin_the_beguine()
quietude(3, my_func)
</code></pre>
<p>编辑:请求更多信息:</p>
<p>Python的lambda仅限于一行,因此它们不像ruby那样灵活</p>
<p>要传递带参数的函数,我建议<strong>部分函数</strong>请参见以下代码:</p>
^{2}$
<p>编辑2个更多信息</p>
<p>Python函数只有在添加了“()”之后才被调用。这不同于ruby,“()”是可选的。下面的代码在start()中运行“b”方法,在run()中运行“a”方法)</p>
<pre><code>def a_method():
print 'a_method is running'
return 'a'
def b_method():
print 'b_method is running'
return 'b'
def run(a, b):
print a()
print b
def start():
run(a_method, b_method())
</code></pre>