|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 hxha2007 于 2020-5-13 22:00 编辑
新手入门,之前完全没接触过程序。
def fun(var):
var = 1314
print(var, end='')
var = 520
fun(var)
print(var)
这个fun(var)具体是什么意思?
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())
这个fun3(var)又是什么意思?
我的理解是def fun1下面的函数把var从hi变成了baby,返回fun2。
def fun2 之后var从baby 加了个 i love you 。
然后一个独立的fun3(var)是什么意思,下面那个 return var 到底返回的是哪个var?
求各路大神解惑。
本帖最后由 Twilight6 于 2020-5-13 22:15 编辑
第一问:
因为你前面定义了函数:
- def fun(var):
- var = 1314
- print(var, end='')
复制代码
所以这里的:fun(var) 是指调用你定义的函数fun并且传入参数var=520
这里是为了让你知道,有函数内部如果定义了一个与外部的全局变量同名的变量,就会启用屏蔽效果
内部函数会创建一个与外部同名的局部变量来暂时覆盖外部的全局变量
一旦出去函数外面var就变回了全局变量
——————————————————————————————————————————————————分割线——
第二问:
var = 'Hi' 是全局变量 , 然后你定义了这个函数
- def fun1():
- global var # 通过声明global,来允许函数内部更改外面的全局变量
- var = ' Baby ' # 这里就可以成功把var更改为 'Baby'
- return fun2(var) # 这里返回结果又调用了func2函数
- def fun2(var):
- var += 'I love you' # 拼接上 I love you 并返回
- fun3(var) # 调用第三个函数 看到这先去看第3个函数 ,最后在看func2 的 return
- return var # 返回最终结果 Baby I love you
- def fun3(var):
- var = ' 小甲鱼 ' # 这边没有生命var是全局变量,所以产生屏蔽效果 var在这是局部变量
- # 一结束func3函数 就消失了的变量 ,所以不影响上面的结果
- print(fun1())
复制代码
|
|