Python中的默认参数范围

2024-04-18 23:41:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Python,遇到了一个我不太理解的例子。在官方教程中,给出了以下代码:

i = 5

def f(arg=i):
    print(arg)

i = 6
f()

来自c++,直觉上这将打印5。但我也想理解技术上的解释:“默认值是在定义范围中的函数定义点处计算的。”这里的“定义范围”是什么意思?在


Tags: 函数代码官方定义defarg教程技术
1条回答
网友
1楼 · 发布于 2024-04-18 23:41:09
1. i = 5
2. 
3. def f(arg=i):
4.     print(arg)
5. 
6. i = 6
7. f()

在#1,i = 5被求值,变量及其值被添加到作用域中。在

在第3行,计算函数声明。此时,所有默认参数也将被计算。i包含值5,因此arg的默认值是5(而不是符号i)。在

i更改第6行的值之后,arg已经是5,所以它没有改变。在

相关问题 更多 >