为什么Python函数可以修改list
或dict
而不是string
外部:
这是有道理的,因为函数创建范围,所以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()