在菜鸟论坛看到的传可变对象实例,print ("函数外取值: ", mylist)
#!/usr/bin/python3
# 可写函数说明
def changeme( mylist ):
"修改传入的列表"
mylist.append()
print ("函数内取值: ", mylist)
return
# 调用changeme函数
mylist =
changeme( mylist )
print ("函数外取值: ", mylist)
传入函数的和在末尾添加新内容的对象用的是同一个引用。故输出结果如下:
函数内取值:]
函数外取值:]
mylist = ,print ("函数外取值: ", mylist) ,全局变量mylist怎么改变了? 今天见了 你都知道这是个全局变量了,原数据为 在函数changeme()append了 ,这不是改变了吗 mylist.append是在原列表的基础上对自身做出的改变
而非变量上的改变
打个比方
mylist就像是个衣橱
它没有变成桌子凳子
只是在衣橱中增加了一顶帽子
没有改变它依旧是同一个衣橱的本质 def changeme( mylist ):
arr = mylist[:] # 如果不想影響全局變量,可以在函數裡面定義新列表取代
arr.append()
print ("函数内取值: ", arr)
return # 沒有返回值,return 可有可無
mylist =
changeme( mylist )
print ("函数外取值: ", mylist) 大马强 发表于 2021-9-6 07:02
你都知道这是个全局变量了,原数据为 在函数changeme()append了 ,这不是改变 ...
忘了全局变量是可以改变的 逃兵 发表于 2021-9-6 08:15
mylist.append是在原列表的基础上对自身做出的改变
而非变量上的改变
回看了视频,在函数内部修改全局变量,等于在函数内新建了一个局部变量,print ("函数外取值: ", mylist) ,全局变量mylist怎么改变了? 大马强 发表于 2021-9-6 07:02
你都知道这是个全局变量了,原数据为 在函数changeme()append了 ,这不是改变 ...
回看了视频,在函数内部修改全局变量,等于在函数内新建了一个局部变量,print ("函数外取值: ", mylist) ,全局变量mylist怎么改变了?就这理解不了 傻眼貓咪 发表于 2021-9-6 10:31
回看了视频,在函数内部修改全局变量,等于在函数内新建了一个局部变量,print ("函数外取值: ", mylist) ,全局变量mylist怎么改变了? Boibot 发表于 2021-9-6 23:48
回看了视频,在函数内部修改全局变量,等于在函数内新建了一个局部变量,print ("函数外取值: ", mylist) ...
列表有特殊性,参考4楼大佬 mylist.append是在原列表的基础上对自身做出的改变
而非变量上的改变
页:
[1]