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 的正常。
|
111111111111Feb 6, 2017
1
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 |
|
111111111111Feb 6, 2017
2
|
|
111111111111Feb 6, 2017
3
@111111111111 打开之后搜索“原因解释如下:”
|
|
jingniaoFeb 6, 2017
4
年前刚遇到这个问题,你把括号去掉就好了
|
|
pangoFeb 6, 2017
5
请使用:
b=lambda: datetime.datetime.now() 建议先把书看看好,基础概念弄清楚后可以节省很多时间 |
|
eyeKi1lFeb 6, 2017 via Android
6
默认参数的默认值何时被计算?
|
|
cxh116Feb 6, 2017
7
def test(a, b=None)):
if b is None: b = datetime.datetime.now() 易懂的办法 |
|
twoyuanFeb 7, 2017
13
话说这边使用 lambda 和直接传 b=datetime.datetime.now 一样吧
|