我有两个陈述: 1)"在变量资源管理器中,可以看到当前控制台的命名空间内容(所有全局对象引用)。 函数可以访问命名空间内容中的所有变量,而无需将它们显式地作为函数参数传递。"
2)"通常,只有传递给函数的参数才在您的环境中。 不作为参数传递的变量不一定可用。"
其中一个是正确的还是可以解释一下,Python函数可以访问哪些对象?谢谢!
答案 0 :(得分:0)
函数可以访问__builtins__
,全局变量(实际上是模块中的范围),以及包含参数的本地变量。
答案 1 :(得分:0)
在变量资源管理器中,可以看到当前控制台的命名空间内容(所有全局对象引用)。函数可以访问命名空间内容中的所有变量,而无需将它们显式地作为函数参数传递。
我说这是非常正确的,尽管缺乏。
当它说某个函数访问所有程序全局名称时是正确的。如果Python找不到当前本地范围中使用的名称,则它假定该名称是全局的,并将尝试从那里检索其值。
但是,上述定义中没有提及的一点是内置名称。它们随时随地都可以访问。
通常,只有传递给函数的参数才在您的环境中。不作为参数传递的变量不一定可用。
我不同意所提出的声明,即只有作为参数传入的变量才是本地范围(a.k.a环境)的函数的一部分。如果使用global
或nonlocal
语句未将变量声明为全局变量,则在函数本地作用域中创建的任何变量都属于该作用域,并且可以在该作用域内访问。