首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中默认参数的作用域是什么?

Python中默认参数的作用域是什么?

提问于 2018-02-28 04:21:21
回答 2关注 0查看 227

在Python中定义带有数组参数的函数时,该参数的作用域是什么?

此示例取自Python教程:

代码语言:txt
复制
def f(a, L=[]):
    L.append(a)
    return L

print f(1)
print f(2)
print f(3)

输出:

代码语言:txt
复制
[1]
[1, 2]
[1, 2, 3]

我不太确定,如果我明白这里发生了什么。这是否意味着数组的作用域在函数之外?为什么数组会记住呼叫时的值?来自其他语言,只要变量是静态的,我就会期待这种行为。否则,似乎应该每次都重置。实际上,当我尝试以下内容时:

代码语言:txt
复制
def f(a):
    L = []
    L.append(a)
    return L

我得到了我期望的行为(数组在每次调用时都被重置)。

所以在我看来,我只需要def f(a, L=[]):解释这一行- L变量的范围是什么?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档