变量作用域的问题
def foo():b = 'hello'
def bar():
c = True
print(a)
print(b)
print(c)
bar()
此处,我给a = 100,调用函数foo()这个a是全局变量吧? b和c是局部变量么 本帖最后由 yhhpf 于 2020-6-30 15:19 编辑
是的
在函数内部的变量称为局部变量,他的作用域范围为函数内,也就是出了函数外就无效。 本帖最后由 Twilight6 于 2020-6-30 15:29 编辑
这里你的 a 没看到在哪里赋值,想象空间可以很大....不能判断为什么变量
因为你如果a在其他函数内赋值 就算局部变量了,如果 a 在全局作用域赋值,那么就是全局变量
这里的b、c 对于 整个作用域来说是 局部变量 ,而 b 相对于 内嵌函数 bar() 来说是全局变量
全局变量有些时候也有相对之说哈~
Twilight6 发表于 2020-6-30 15:27
这里你的 a 没看到在哪里赋值,想象空间可以很大....不能判断为什么变量
因为你如果a在其他函数内 ...
嵌套函数的c的值能改吗,试了半天,只能把全局的c改成True 用一个简单粗暴的方法告诉你:当变量的第一次被赋值时,它的左边没有能够被删除的空格或者制表符的时候,它就是全局变量,而其他的都叫局部变量。
缩进级不同的局部变量的关系,我认为能够用韦恩图表示,也就是包含与被包含的关系,缩进级靠左的能够在同级或者更右边被调用,更左边的缩进级则无法调用或者给它赋值。 白白白白丶白 发表于 2020-6-30 16:11
嵌套函数的c的值能改吗,试了半天,只能把全局的c改成True
你是说外部能改内部的意思吗? 不能的哈
Twilight6 发表于 2020-6-30 16:13
你是说外部能改内部的意思吗? 不能的哈
好吧 阴阳神万物主 发表于 2020-6-30 16:12
用一个简单粗暴的方法告诉你:当变量的第一次被赋值时,它的左边没有能够被删除的空格或者制表符的时候,它 ...
好的,谢谢
页:
[1]