Python作用域解释以及举例说明

Python 作用域

作用域(scope)是指变量、函数和对象的可访问性和可见性范围。

具体的作用域

全局作用域(Global scope):全局作用域是程序中定义在最外层的变量和函数所在的作用域。在全局作用域中定义的变量和函数可以在整个程序的任何地方访问。

局部作用域(Local scope):局部作用域是在函数或类中定义的作用域。在局部作用域中定义的变量和函数只能在其被定义的函数或类内部访问。

a. 函数作用域(Function scope):函数作用域是在函数中定义的作用域。在函数作用域中定义的变量只能在函数内部访问。

b. 类作用域(Class scope):类作用域是在类定义中的作用域。在类作用域中定义的变量可以在类的方法中访问。

嵌套作用域(Enclosing scope):嵌套作用域是在嵌套的函数中定义的作用域。在嵌套作用域中定义的变量可以在外部函数和内部函数中访问。

作用域规则遵循 LEGB 原则:

L(Local):查找局部作用域。
E(Enclosing):查找包围(嵌套)函数的局部作用域(外部函数的作用域)。
G(Global):查找全局作用域。
B(Built-in):查找内置作用域,即 Python 内置的函数和模块的作用域。

备注:如果在当前作用域找不到变量或函数的定义,Python 解释器会继续向上一级作用域查找,直到找到为止。如果最终都找不到,将引发 NameError 异常。

举例说明

# 全局作用域(Global scope)
global_var = 5  # 全局变量
def global_func():
    print(global_var)  # 可以在函数内部访问全局变量
global_func()  # 输出: 5
print(global_var)  # 输出: 5

# 在全局作用域中定义的变量 global_var 可以在整个程序的任何地方访问。


# 局部作用域(Local scope)
def local_func():
    local_var = 30  # 局部变量
    print(local_var)
local_func()  # 输出: 30
print(local_var)  # 报错: NameError,局部变量在外部不可访问

# 在函数内部定义的变量 local_var 只能在其被定义的函数内部访问,外部无法访问。


# 嵌套作用域(Enclosing scope):
def outer_func():
    outer_var = 15  # 外部函数作用域

    def inner_func():
        inner_var = 50  # 内部函数作用域
        print(outer_var)  # 可以在内部函数中访问外部函数的变量
    inner_func()

outer_func()  # 输出: 15
print(outer_var)  # 报错: NameError,外部函数的变量在外部不可访问
print(inner_var)  # 报错: NameError,内部函数的变量在外部不可访问

# 在嵌套函数中,内部函数可以访问外部函数中定义的变量,但外部函数和内部函数中定义的变量在外部作用域中不可访问。

#内置作用域
print(len("Hello"))  # 内置函数 len() 计算字符串长度
# 内置函数和对象可以在任何地方直接使用,无需导入任何模块。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值