|
发表于 2021-9-24 17:35:49
|
显示全部楼层
本帖最后由 jackz007 于 2021-9-24 18:03 编辑
var 只是在 fun1() 中声明了全局变量,因此,只是在 fun1() 中 var 是可以赋值的全局变量。在其它函数中,均未使用 global 关键字进行声明,而且,都用等号为其赋过值,所以,这些 var 就是不折不扣的局部变量。
- def fun3(var):
- var = '小甲鱼' # var 是 fun3() 的形式参数,属于局部变量,而非全局变量
复制代码
- def fun3():
- global var # 全局变量在使用前必须先进行声明,否则,不可以用等号为其赋值
- var = '小甲鱼' # 这样用 var 才是全局变量
复制代码
fun1() 要返回对 fun2() 的调用结果,而 fun2() 又要返回对 fun3() 的调用结果,就是说,fun3() 的返回值同时也是 fun2() 及 fun1() 的返回值,可想而知,如果 fun3() 没有返回值,那么,fun2() 和 fun1() 也会没有返回值。
由于在本例中,fun3() 没有返回值,所以,直接导致这条语句
的输出结果是 None 。解决方法自然是在 fun3() 结束的位置添加一个 return 语句,然后,再加上需要返回的变量或字符串。 |
|