自学内容网 自学内容网

Python局部变量和全局变量

在 Python 中,变量的默认作用域取决于其定义的位置:

1. 局部变量

  • 如果一个变量是在函数内部定义的,那么它默认是一个局部变量
  • 局部变量只在函数内部有效,在函数外部不可访问。
def my_function():
    x = 10  # x 是局部变量
    print(x)

my_function()
print(x)  # 会报错:NameError: name 'x' is not defined

2. 全局变量

  • 如果一个变量是在函数外部定义的,那么它默认是一个全局变量
  • 全局变量可以在整个模块内被访问,包括函数内部(但不能直接修改,除非声明为 global)。
y = 20  # y 是全局变量

def my_function():
    print(y)  # 可以访问全局变量 y

my_function()
print(y)  # 仍然可以访问全局变量

3. 修改全局变量

  • 如果你在函数内部想修改全局变量,需要使用 global 关键字。
z = 30  # z 是全局变量

def my_function():
    global z  # 声明 z 为全局变量
    z = 40    # 修改全局变量 z 的值
    print(z)

my_function()
print(z)  # 输出 40

4. 嵌套作用域与 nonlocal

  • 如果变量位于嵌套函数中,可以使用 nonlocal 修改最近一层的外部变量,而不影响全局作用域。
def outer_function():
    x = 10  # 外层函数的局部变量

    def inner_function():
        nonlocal x  # 修改外层函数的变量
        x = 20
        print(f"Inner: {x}")

    inner_function()
    print(f"Outer: {x}")

outer_function()

总结

  • 函数外定义的变量:默认全局变量。
  • 函数内定义的变量:默认局部变量。
  • 通过 globalnonlocal 可分别修改全局变量或嵌套作用域变量。

原文地址:https://blog.csdn.net/qq_42023999/article/details/143865161

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!