函数中的字典参数是否在从函数返回后保留?

时间:2016-03-11 22:22:55

标签: python

我在python中有一个小代码,其中有一个函数需要三个参数--2个字符串和一个哈希。 hash参数还有一个默认参数,在这种情况下,它是一个空哈希。该函数使得它返回第三个参数,即哈希。代码如下所示。

def add_city(city, country, places = {}):
    places[city] = country
    return(places)

p0 = add_city('New York', 'USA')
p1 = add_city('Toronto', 'Canada')

print(p0.keys()) # prints dict_keys(['New York', 'Toronto'])
print(p1.keys()) # prints dict_keys(['New York', 'Toronto'])

所以我希望每次在没有第三个参数的情况下调用函数时都会返回一个新哈希,但是从输出看来哈希是保留的并且不是空哈希(当第三个参数不存在时)。任何人都可以解释它是错误的假设吗?我预计第一个打印结果是

dict_keys(['New York'])

和第二个打印结果

dict_keys(['Toronto']).

0 个答案:

没有答案