Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 范围是什么意思_Python_Scope - Fatal编程技术网

Python 范围是什么意思

Python 范围是什么意思,python,scope,Python,Scope,来自python: 作用域定义名称在块中的可见性。如果是本地人 变量在块中定义,其范围包括该块 及 在代码块中使用名称时,将使用最近的 封闭范围 因此,从这段引文来看,范围的含义并不明显。范围是绑定的集合name-->value,这是真的吗?什么是包围范围?这是否意味着每个作用域都必须包含对封闭作用域的引用?@Martjin Pieters的澄清和回答非常棒,但我想补充一点,除了python之外,作用域是一个计算机科学/编程概念,基本上涵盖了当前使用的所有编程语言 为了进一步了解什么是作用域,一

来自python:

作用域定义名称在块中的可见性。如果是本地人 变量在块中定义,其范围包括该块

在代码块中使用名称时,将使用最近的 封闭范围


因此,从这段引文来看,范围的含义并不明显。范围是绑定的集合
name-->value
,这是真的吗?什么是包围范围?这是否意味着每个作用域都必须包含对
封闭作用域的引用?

@Martjin Pieters的澄清和回答非常棒,但我想补充一点,除了python之外,作用域是一个计算机科学/编程概念,基本上涵盖了当前使用的所有编程语言

为了进一步了解什么是作用域,一般来说,除了python之外,我从这里开始:


包括python在内的许多语言都遵循相同的基本范围规则,但不同语言之间的细节可能不同。因此,如果您真的要问“什么是范围?”那么从一般的源代码开始可能比学习python的复杂作用域(至少首先)更有用。

第一句话定义了什么是范围。范围是一个名称可见的扩展。在一个函数中,本地名称都是可见的;您在一个作用域内。@Martijn Pieters作用域是python中的对象吗?请注意“定义局部变量”和“使用名称时”之间的区别;区别是至关重要的。那里的文档定义了在函数块中定义的任何名称在函数的所有块中都是可见的。因为函数是在模块中定义的,模块也是作用域,所以这里有一个隐含的层次结构。在作用域中嵌套了一些作用域(模块中的函数),可以进一步嵌套这些作用域(模块中的函数中的函数)<代码>类
块也形成作用域,控制这些作用域的规则是特殊的(类块中定义的名称范围仅限于类块)。在ECMA-262规范中,Visibility相当正式地定义为执行上下文和词法环境。我希望在python中找到相同的结构。。。