鱼C论坛

 找回密码
 立即注册
查看: 28|回复: 7

[已解决]变量作用域的问题

[复制链接]
最佳答案
0 
发表于 2020-6-30 15:03:09 | 显示全部楼层 |阅读模式

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

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

x
  1. def foo():
  2.     b = 'hello'
  3.     def bar():
  4.         c = True
  5.         print(a)
  6.         print(b)
  7.         print(c)

  8.     bar()
复制代码


此处,我给a = 100,调用函数foo()  这个a是全局变量吧? b和c是局部变量么
最佳答案
2020-6-30 15:27:29
本帖最后由 Twilight6 于 2020-6-30 15:29 编辑




这里你的 a 没看到在哪里赋值,想象空间可以很大....不能判断为什么变量

因为你如果a在其他函数内赋值 就算局部变量了,如果 a 在全局作用域赋值,那么就是全局变量

这里的b、  c 对于 整个作用域来说是 局部变量 ,而 b 相对于 内嵌函数 bar() 来说是全局变量

全局变量有些时候也有相对之说哈~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
15 
发表于 2020-6-30 15:16:27 | 显示全部楼层
本帖最后由 yhhpf 于 2020-6-30 15:19 编辑

是的
在函数内部的变量称为局部变量,他的作用域范围为函数内,也就是出了函数外就无效。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1239 
发表于 2020-6-30 15:27:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-30 15:29 编辑




这里你的 a 没看到在哪里赋值,想象空间可以很大....不能判断为什么变量

因为你如果a在其他函数内赋值 就算局部变量了,如果 a 在全局作用域赋值,那么就是全局变量

这里的b、  c 对于 整个作用域来说是 局部变量 ,而 b 相对于 内嵌函数 bar() 来说是全局变量

全局变量有些时候也有相对之说哈~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-6-30 16:11:11 | 显示全部楼层
Twilight6 发表于 2020-6-30 15:27
这里你的 a 没看到在哪里赋值,想象空间可以很大....不能判断为什么变量

因为你如果a在其他函数内 ...


嵌套函数的c的值能改吗,试了半天,只能把全局的c改成True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
70 
发表于 2020-6-30 16:12:31 | 显示全部楼层
用一个简单粗暴的方法告诉你:当变量的第一次被赋值时,它的左边没有能够被删除的空格或者制表符的时候,它就是全局变量,而其他的都叫局部变量。
缩进级不同的局部变量的关系,我认为能够用韦恩图表示,也就是包含与被包含的关系,缩进级靠左的能够在同级或者更右边被调用,更左边的缩进级则无法调用或者给它赋值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1239 
发表于 2020-6-30 16:13:15 | 显示全部楼层
白白白白丶白 发表于 2020-6-30 16:11
嵌套函数的c的值能改吗,试了半天,只能把全局的c改成True



你是说外部能改内部的意思吗? 不能的哈


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-6-30 16:20:48 | 显示全部楼层
Twilight6 发表于 2020-6-30 16:13
你是说外部能改内部的意思吗? 不能的哈

好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-6-30 16:21:27 | 显示全部楼层
阴阳神万物主 发表于 2020-6-30 16:12
用一个简单粗暴的方法告诉你:当变量的第一次被赋值时,它的左边没有能够被删除的空格或者制表符的时候,它 ...

好的,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

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

GMT+8, 2020-7-9 17:16

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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