我有以下奇怪的行为: -
def set_diary_time_data(day_str, x={}):
# Dict for template in html
print 'Set diary time data'
print x
我用以下方式调用此函数:-
x = heading_queries.set_diary_time_data(day_str)
所以字典 x 没有作为参数传递,所以它应该初始化为 {}
但是,在重复调用此函数时,放置在 x 中的值会保留先前调用的值。这是在 django 中,当用户登录时调用,前一个用户的详细信息保留在 x. (x 未设置为全局变量。)
我可以通过将功能更改为来克服这个问题
def set_diary_time_data(day_str, x=None):
if not x: x = {}
(Python 2.7)