Python名称解析是指在Python中查找指定名称的过程
▥Python
𝄐 0
python中名称定义怎么解决,pythonname,python名称的由来,python的名字,python命名方法,python的命名规范
Python名称解析是指在Python中查找指定名称的过程。当Python遇到一个名称时,它会按照一定的顺序搜索该名称,并找到与该名称相关联的对象。
Python名称解析的顺序如下:
1. 当前作用域(local):如果名称在当前作用域(函数或类)中定义,则直接使用该名称。
2. 闭包(enclosing):如果名称在任何上层作用域中定义(比如嵌套函数),则Python会逐级向上搜索这些作用域,直到找到该名称所对应的对象。
3. 全局作用域(global):如果名称在全局作用域中定义,则Python会使用该名称所对应的对象。
4. 内置作用域(built-in):如果名称是Python内置的关键字或函数名,则直接使用该名称所对应的对象。
以下是相应的例子:
python
x = 1 # global scope
def foo():
x = 2 # local scope
def bar():
print(x) # enclosing scope
bar()
foo() # 输出为 2
在这个例子中,bar() 函数的闭包中包含 x=2 的定义,因此 print(x) 在 bar() 中输出为 2。
另外,如果在 foo() 中注释掉 x=2 的定义,那么 bar() 将沿着 foo() 的闭包向上搜索并找到全局作用域中的 x 变量,输出为 1。
python
def my_func():
print(abs(-1)) # built-in scope
my_func() # 输出为 1
在这个例子中,abs() 是Python内置函数,在全局范围(built-in)中定义。因此,my_func() 中的 print(abs(-1)) 直接使用了该函数,并输出为 1。
Python名称解析是指在Python中查找指定名称的过程。当Python遇到一个名称时,它会按照一定的顺序搜索该名称,并找到与该名称相关联的对象。
Python名称解析的顺序如下:
1. 当前作用域(local):如果名称在当前作用域(函数或类)中定义,则直接使用该名称。
2. 闭包(enclosing):如果名称在任何上层作用域中定义(比如嵌套函数),则Python会逐级向上搜索这些作用域,直到找到该名称所对应的对象。
3. 全局作用域(global):如果名称在全局作用域中定义,则Python会使用该名称所对应的对象。
4. 内置作用域(built-in):如果名称是Python内置的关键字或函数名,则直接使用该名称所对应的对象。
以下是相应的例子:
python
x = 1 # global scope
def foo():
x = 2 # local scope
def bar():
print(x) # enclosing scope
bar()
foo() # 输出为 2
在这个例子中,bar() 函数的闭包中包含 x=2 的定义,因此 print(x) 在 bar() 中输出为 2。
另外,如果在 foo() 中注释掉 x=2 的定义,那么 bar() 将沿着 foo() 的闭包向上搜索并找到全局作用域中的 x 变量,输出为 1。
python
def my_func():
print(abs(-1)) # built-in scope
my_func() # 输出为 1
在这个例子中,abs() 是Python内置函数,在全局范围(built-in)中定义。因此,my_func() 中的 print(abs(-1)) 直接使用了该函数,并输出为 1。
本文地址:
/show-275386.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。