鱼C论坛

 找回密码
 立即注册
查看: 697|回复: 5

请教 全局变量相关问题

[复制链接]
发表于 2019-1-15 19:30:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
var = 'Hi'
def fun1():
    global var
    var='Baby'
    return fun2(var)

def fun2(var):
    var +='I love you'
    fun3(var)
    return var

def fun3(var):
    var='小甲鱼'

print(fun1())

BabyI love you
>>>


为什么打印出来的是  BabyI love you
不是小甲鱼

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-15 19:42:14 | 显示全部楼层
本帖最后由 heidern0612 于 2019-1-15 19:44 编辑

fun1() global了var之后,全局变量var已经变成了 Baby. 返回的是fun2(var)的结果。


fun2() var+= "I love you"  var = "Baby " +"I love you" 。 fun3(var)调用,没返回值,返回的是空。(即使有返回值,fun3()的var值也只是局部变量,影响不了全局变量。)

结果fun2()返回的就是var的值(Baby  i love you)。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 19:56:07 | 显示全部楼层
我分享一下我的理解,希望能帮到你:


QQ截图20190115195444.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 20:18:16 | 显示全部楼层
老铁,函数内部定义的是局部变量,只作用函数内。
而func3中的var是局部变量。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 20:23:30 | 显示全部楼层
13572044595 发表于 2019-1-15 19:56
我分享一下我的理解,希望能帮到你:

函数内可对全局变量进行修改,这跟有没有返回值没关系的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 20:46:00 | 显示全部楼层
stonejianbu 发表于 2019-1-15 20:23
函数内可对全局变量进行修改,这跟有没有返回值没关系的

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-13 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表