擅长:python、mysql、java
<p>在这里,可选参数是datetime now的<em>函数</em>,没有括号,正如@jonsharpe所建议的那样。调用f调用默认函数,调用两次返回两个不同的时间:</p>
<pre><code>>>> import datetime
>>> def f(t=datetime.datetime.now):
... return t()
...
>>> f()
datetime.datetime(2015, 6, 21, 0, 6, 10, 698000)
>>> f()
datetime.datetime(2015, 6, 21, 0, 6, 12, 269000)
</code></pre>
<p>或者您可以传入另一个函数,这里是一个测试函数,并重写<code>t</code>。调用f()调用传入的函数:</p>
<pre><code>>>> def test():
... return "hi"
...
>>> f(t=test)
'hi'
</code></pre>