gpt4 book ai didi

python - python中不一致的变量范围

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

似乎字符串和字典在 python 中的行为根本不同。当我将一个字符串传递给一个函数时,它只会在局部函数的范围内被修改,但是当我对一个字典做同样的事情时,它会在函数之外的范围内被修改:

def change_str(s):
s += " qwe"

def change_arr(a):
a[1] = "qwe"

ss = "asd"
change_str(ss)
print ss
# prints:
# asd

aa = {0:"asd"}
change_arr(aa)
print aa
# prints:
# {0: 'asd', 1: 'qwe'}

这种行为是故意的吗?如果是,为什么?

最佳答案

这是有意的行为。字符串在 Python 中是不可变的,因此基本上所有字符串操作都会返回 一个新的 字符串,并且由于您的函数不返回任何内容,因此您看不到新字符串 asd qwe。您可以在本地范围之外更改可变容器的内容,而无需将它们声明为全局。

您可以在 python 的官方文档中阅读有关可变类型的更多信息 data model .

关于python - python中不一致的变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23333523/

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