|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. def fun(var):
2. var = 1314
3. print(var, end='')
4.
5. var = 520
6. fun(var)
7. print(var)
求大神帮我解释一下,为什么这个程序打印出来的是1314520?
本帖最后由 fish_nian 于 2021-6-26 10:56 编辑
因为函数内部对 var 重新赋值为 1314 触发屏蔽机制,暂时屏蔽外部的 var = 520,此时函数打印的结果就是1314了。而后面在函数外直接打印var变量的值,此时的结果就是520,因为第三行的end = ' ',那么此时两个结果显示在同一行,显示为1314520 了
- def fun(var): # var在外面已经定义了,传入函数内的就是局部变量
- var=1314 # 局部变量 var 被赋新值 1314,由于和函数外部变量重名,启动屏蔽机制,暂时屏蔽外部变量
- print(var,end='') # 打印var的值,因为end=''所以不换行
- var=520 # 定义函数外的变量var值为520
- fun(var) # 执行函数fun()打印1314
- print(var) # 打印函数外的变量520
复制代码
|
|