鱼C论坛

 找回密码
 立即注册
查看: 2876|回复: 2

[技术交流] Python FAQ 001 局部变量 & 全局变量相关问题

[复制链接]
发表于 2020-3-3 15:22:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 qiuyouzhi 于 2020-3-12 08:34 编辑

Python FAQ 001

问题:

  1. var = ' Hi '

  2. def fun1():
  3.      global var
  4.      var = ' Baby '
  5.      return fun2(var)

  6. def fun2(var):
  7.      var += 'I love you'
  8.      fun3(var)
  9.      return var

  10. def fun3(var):
  11.      var = ' 小甲鱼 '

  12. print(fun1())
复制代码


为什么打印出来的是 Baby I love you


(出自:https://fishc.com.cn/forum.php?m ... p;page=1#pid4379822

我的解答:

虽然fun1里面写了global,可它对var的操作

却是=,Python就认为它是一个局部变量

又因为它的返回值是fun2,对函数进行了一次拼接,所以它对局部变量的操作

是有效的。

fun3和fun1一样,都是局部变量。
欢迎来找错~~~

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2020-3-3 15:24:57 | 显示全部楼层
你错了,fun2() 不能享有特权:

  1. Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
  2. Type "help", "copyright", "credits" or "license()" for more information.
  3. >>>
  4. ==================== RESTART: C:\Users\Angel\Desktop\test.py ===================
  5. Baby I love you
  6. >>> var
  7. ' Baby '
  8. >>>
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
qiuyouzhi + 3 + 3 谢谢找错~~

查看全部评分

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

使用道具 举报

发表于 2020-8-24 20:03:45 | 显示全部楼层
Baby I love you
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 18:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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