Python 变量作用域解析:LEGB 规则详解

```htmlPython 变量作用域解析:LEGB 规则详解

Python 变量作用域解析:LEGB 规则详解

在 Python 编程中,理解变量的作用域是非常重要的。Python 使用一种称为 LEGB 的规则来查找变量的定义。LEGB 是 Local、Enclosing、Global 和 Built-in 的首字母缩写,分别代表局部、封闭、全局和内置作用域。

Local(局部)作用域

当一个变量在函数内部被定义时,它就具有局部作用域。这意味着这个变量只能在这个函数内部访问。一旦函数执行完毕,这个变量就会被销毁。

def my_function():
    x = 10  # x is a local variable
    print(x)

my_function()
# print(x)  # This will cause an error because x is not defined in this scope

Enclosing(封闭)作用域

封闭作用域指的是在一个函数内部定义的另一个函数。在这种情况下,内部函数可以访问外部函数的变量,但外部函数不能访问内部函数的变量。

def outer_function():
    y = 5  # y is in the enclosing scope

    def inner_function():
        print(y)  # inner_function can access y from the enclosing scope

    inner_function()

outer_function()

Global(全局)作用域

全局变量是在函数外部定义的变量,可以在整个程序中访问。如果你想在一个函数内部修改全局变量的值,你需要使用 global 关键字。

z = 15  # z is a global variable

def modify_global():
    global z
    z = 20  # Now we are modifying the global variable z

print(z)  # Output: 15
modify_global()
print(z)  # Output: 20

Built-in(内置)作用域

内置作用域包含了 Python 内置的函数和变量,如 len()、str() 等。这些函数和变量在整个程序中都是可用的。

print(len("Hello, World!"))  # len is a built-in function

通过了解 LEGB 规则,你可以更好地控制你的代码中的变量,并避免一些常见的错误。记住,当你在查找一个变量的定义时,Python 会按照 L-E-G-B 的顺序进行搜索。

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值