本帖最后由 Daniel_Zhang 于 2021-3-10 15:40 编辑
- # -*- coding: utf-8 -*-
- def fun3(var):
- var = ' 小甲鱼 '
- var = 'Baby'
- fun3(var)
- print(fun3(var))
复制代码
print 出来的是 None 是因为 fun3 函数没有返回值
先定义了 var 为 Baby,var 传入 fun3 进行修改
但是 fun3(var) 运行之后,print 的是 fun3(var) 而不是 var
--------------------------------
但是第二个代码,
- # -*- coding: utf-8 -*-
- def fun3(var):
- var = ' 小甲鱼 '
- var = 'Baby'
- fun3(var)
- print(var)
复制代码
之所以是 Baby,因为 fun3 调用的时候,存在一个变量的作用域的问题
即,即使在 fun3 中对 var 进行了修改,也只是在 fun3 内部,var 才是 '小甲鱼'
如果需要使 fun3 中修改的 var 值 在后面的print 里面 打印出 '小甲鱼',可以如下修改:
- # -*- coding: utf-8 -*-
- def fun3(var):
- var = ' 小甲鱼 '
- return var
- var = 'Baby'
- var = fun3(var)
- print(var)
复制代码
或者
- # -*- coding: utf-8 -*-
- def fun3():
- global var # 引用 全局变量 var 并修改这个全局变量
- var = ' 小甲鱼 '
- var = 'Baby'
- fun3()
- print(var)
复制代码