鱼C论坛

 找回密码
 立即注册
查看: 588|回复: 1

关于作用域的问题疑惑

[复制链接]
发表于 2020-4-13 17:52:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下:
def d(L=[]):
    print(L)
    if L == []:
        print('empty')
        L = []
    L.append('0')
    return L

def e(L=[]):
    print(L)
    if L == []:
        print('empty')
        #L = []
    L.append('0')
    return L

函数d重复调用结果如下:
>>> d()
[]
empty
['0']
>>> d()
[]
empty
['0']
>>>
函数e重复调用结果如下:
>>> e()
[]
empty
['0']
>>> e()
['0']
['0', '0']
>>>
我知道之所以结果会不一样,应该跟其作用域有关系,但是对其机制还是理解的不是很清楚,希望有大神能够给详细解答一下,谢谢!
刚注册没多久,没多少鱼币,就不悬赏了哈


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 19:03:09 | 显示全部楼层
不是作用域的问题,是python内部为了节省资源会保存上一次的容器,你在e函数中可以试着打印id(L)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 10:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表