hi , 如题, 不知道这是不是 django 的特性?直接用 python 试了没这效果。
import datetime
def test(a, b=datetime.datetime.now()):
print a
print "b %s" %b
print "c %s" %datetime.datetime.now()
test(2)
输出结果 b 的值不会改变, c 的正常。
hi , 如题, 不知道这是不是 django 的特性?直接用 python 试了没这效果。
import datetime
def test(a, b=datetime.datetime.now()):
print a
print "b %s" %b
print "c %s" %datetime.datetime.now()
test(2)
输出结果 b 的值不会改变, c 的正常。
1
111111111111 Feb 6, 2017
In [1]: import datetime
In [2]: def test(a, b=datetime.datetime.now()): ...: print a ...: print "b %s" %b ...: print "c %s" %datetime.datetime.now() ...: In [3]: import time In [4]: for i in range(6): ...: time.sleep( 2) ...: test(i) ...: 0 b 2017-02-06 11:53:42.707000 c 2017-02-06 11:55:00.035000 1 b 2017-02-06 11:53:42.707000 c 2017-02-06 11:55:02.039000 2 b 2017-02-06 11:53:42.707000 c 2017-02-06 11:55:04.044000 3 b 2017-02-06 11:53:42.707000 c 2017-02-06 11:55:06.049000 |
2
111111111111 Feb 6, 2017
|
3
111111111111 Feb 6, 2017
@111111111111 打开之后搜索“原因解释如下:”
|
4
jingniao Feb 6, 2017
年前刚遇到这个问题,你把括号去掉就好了
|
5
pango Feb 6, 2017
请使用:
b=lambda: datetime.datetime.now() 建议先把书看看好,基础概念弄清楚后可以节省很多时间 |
6
eyeKi1l Feb 6, 2017 via Android
默认参数的默认值何时被计算?
|
7
cxh116 Feb 6, 2017
def test(a, b=None)):
if b is None: b = datetime.datetime.now() 易懂的办法 |
13
twoyuan Feb 7, 2017
话说这边使用 lambda 和直接传 b=datetime.datetime.now 一样吧
|