Python函数可以修改列表或dict外部,但不能修改字符串
为什么Python函数可以修改Python函数可以修改列表或dict外部,但不能修改字符串,python,Python,为什么Python函数可以修改列表或dict,但不能在外部修改字符串: 这是有意义的,因为函数创建范围,所以setit函数创建新变量: ttt = 'ttt' def setit(it): ttt = it print(ttt) def showit(): print(ttt) if __name__ == "__main__": setit("lsdfjlsjdf") showit() 但如何解释这一点,setit函数可以在外部修改列表: aaa
列表
或dict
,但不能在外部修改字符串
:
这是有意义的,因为函数创建范围,所以setit函数创建新变量:
ttt = 'ttt'
def setit(it):
ttt = it
print(ttt)
def showit():
print(ttt)
if __name__ == "__main__":
setit("lsdfjlsjdf")
showit()
但如何解释这一点,setit函数可以在外部修改列表:
aaa = []
def setit(it):
ttt = it
aaa.append(it)
def showit():
print(aaa)
if __name__ == '__main__':
setit(123)
showit()
setit(234)
showit()
因为字符串是不可变的。不能编辑字符串,只能创建新字符串 资料来源:
另请参见:,因为字符串是不可变的。不能编辑字符串,只能创建新字符串 资料来源:
另请参见:毫不犹豫地回答一个明显的骗局!美好的但使用全球能改变它吗?毫不犹豫地回答一个明显的骗局!美好的但使用全球可以改变吗?