gpt4 book ai didi

python - python中默认函数参数的生命周期

转载 作者:太空狗 更新时间:2023-10-30 01:49:06 24 4
gpt4 key购买 nike

<分区>

我刚开始学习 python,对默认参数的概念感到震惊。

在 python 文档中提到,函数的默认参数值仅在遇到 def 语句时计算一次。这使得不可变和可变默认函数参数的值存在很大差异。

>>> def func(a,L=[]):
L.append(a)
return L
>>> print(func(1))
[1]
>>> print(func(2))
[1, 2]

这里可变函数参数 L 保留了最后分配的值(因为默认值不是像 C 中那样在函数调用期间计算的)

Python 中默认参数值的生命周期是否就是程序的生命周期(就像 C 中的静态变量)?

编辑:

>>> Lt = ['a','b']
>>> print(func(3,Lt))
['a', 'b', 3]
>>> print(func(4))
[1, 2, 4]

这里在函数调用期间 func(3,Lt) L 的默认值被保留,它没有被 Lt 覆盖。

默认参数有两个内存吗?一个用于实际默认值(具有程序范围),另一个用于对象传递给它时(具有函数调用范围)?

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