Local/global范围
Local/global scope
我在测试中没有通过这道题,我想知道是否有人可以帮助我理解原因。
问题:哪些名称出现在本地范围内?
a = 3
b = 6
def f(a):
c = a + b
return c
我回答了a,b,c,但显然只有a和c。为什么 b 不在本地范围内 'occurring'?
存在 a
和 b
的全局实例,因为它们是在文件级别分配的。
在函数 f
中,有一个参数 a
使 a
的实例成为本地实例(并且独立于 a
的全局实例)。 b
在 f
中被引用,但未被赋值,因此 b
引用 b
的全局实例。 c
被赋值给 f
,所以 c
是本地的。
所以 f
有 a
和 c
的本地实例。
让我为你说清楚。当您在函数上方声明 'a' 和 'b' 时,它们被视为全局变量,因为它们可以在任何函数中使用('a' 在函数 'f' 中使用)和 'c' 是在函数 'f' 内部定义的,所以它显然是一个局部变量,但 'b' 不是局部变量,因为它既没有被传递给函数也没有被定义,它的值被使用在上面 'c'(这里 'b' 作为全局变量)。如果你的函数只有 'f()' 而 'a' 没有传入那么你的答案将是 'c'(局部变量)。希望它清除
我在测试中没有通过这道题,我想知道是否有人可以帮助我理解原因。 问题:哪些名称出现在本地范围内?
a = 3
b = 6
def f(a):
c = a + b
return c
我回答了a,b,c,但显然只有a和c。为什么 b 不在本地范围内 'occurring'?
存在 a
和 b
的全局实例,因为它们是在文件级别分配的。
在函数 f
中,有一个参数 a
使 a
的实例成为本地实例(并且独立于 a
的全局实例)。 b
在 f
中被引用,但未被赋值,因此 b
引用 b
的全局实例。 c
被赋值给 f
,所以 c
是本地的。
所以 f
有 a
和 c
的本地实例。
让我为你说清楚。当您在函数上方声明 'a' 和 'b' 时,它们被视为全局变量,因为它们可以在任何函数中使用('a' 在函数 'f' 中使用)和 'c' 是在函数 'f' 内部定义的,所以它显然是一个局部变量,但 'b' 不是局部变量,因为它既没有被传递给函数也没有被定义,它的值被使用在上面 'c'(这里 'b' 作为全局变量)。如果你的函数只有 'f()' 而 'a' 没有传入那么你的答案将是 'c'(局部变量)。希望它清除