我要从python函数返回一个列表,但是在这种情况下我很难理解新对象(列表)的创建方式。
在Ubuntu 16.04,Python 3.7.4上运行。 请检查以下代码:
def fun():
return [1, 2, 3]
# CASE 1
x = fun()
y = fun()
print(x is y) # Results in 'False'
# CASE 2
print(fun() is fun()) # Results in 'False'
# CASE 3
print(id(fun())) # Prints 140347113376816
print(id(fun())) # Prints 140347113376816 (SAME !!)
我一直希望,即使对于情况3,两次调用fun()也会得到不同的ID,类似于情况1和情况2。