gpt4 book ai didi

python - 这三个python代码的执行结果怎么解释呢?

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:08 28 4
gpt4 key购买 nike

<分区>

以下是三段python代码:

=======1号=======

def foo(x, items=[]):
items.append(x)
return items

foo(1) #return [1]
foo(2) #return [1,2]
foo(3) #return [1,2,3]

======2号========

def foo(x, items=None):
if items is None:
items = []
items.append(x)
return items

foo(1) #return [1]
foo(2) #return [2]
foo(3) #return [3]

======3号=======

def foo(x, items=[]):
items.append(x)
return items

foo(1) # returns [1]
foo(2,[]) # returns [2]
foo(3) # returns [1,3]

对于代码1,由于没有提供items的值,我觉得应该一直取默认值[]。但是参数 items 的行为就像一个静态变量,保留其值以供后续使用。 No.2 的代码按照我的预期执行:每次调用 foo 时,items 都采用默认值 None。至于代码3,我完全不知道。为什么以上三段代码执行起来如此不同?你可以解释吗?谢谢。

PS: 我使用的是 python 3.3.1

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com