Python变量名

2024-05-14 22:43:44 发布

您现在位置:Python中文网/ 问答频道 /正文

今天,我惊讶地发现以下代码在Python中似乎是有效的:

def foo(n):
  foo = n * 10
  return foo

foo(5)

Python中有什么允许变量名与它所在的函数名匹配?这只是某种范围规则,有助于保持这两件事分开吗?那么Python仅仅认为程序的函数名称空间与程序的变量名称空间是完全独立的吗?你知道吗

(注:我不想在我自己的节目中这样做,因为这有点让人困惑,但正如他们在法国说的那样,这是人生。)


Tags: 函数代码程序名称returnfoo规则def
1条回答
网友
1楼 · 发布于 2024-05-14 22:43:44

这里有两个单独的作用域:函数的全局命名空间和本地命名空间。你知道吗

  • foo函数位于全局命名空间中,因为def foo(n): ...在模块的顶层执行。你知道吗
  • foo整数是foo()函数中的局部变量。名称只在foo()执行时存在。执行return foo时,函数结束,所有局部变量都被清除。你知道吗

所以是的,这两个人可以很好的挨着住。你知道吗

相关问题 更多 >

    热门问题