• Python
  • python的局部变量和全局变量

  • @ 2025-8-11 15:00:30

在Python中,变量的作用域(可见范围)分为局部变量和全局变量,它们的主要区别如下:

1. 局部变量

  • 定义:在函数内部定义的变量,只在该函数内部有效
  • 作用范围:仅在定义它的函数内部可见和使用
  • 生命周期:随着函数的调用而创建,随着函数执行结束而销毁

示例:

def my_function():
    # 这是局部变量
    local_var = "我是局部变量"
    print(local_var)  # 可以在函数内部访问

my_function()
# print(local_var)  # 这里会报错,因为在函数外部无法访问局部变量

2. 全局变量

  • 定义:在函数外部定义的变量,作用于整个程序
  • 作用范围:在整个模块(文件)中都可以访问,包括函数内部(需要特殊声明)
  • 生命周期:从程序运行时创建,直到程序结束才销毁

示例:

# 这是全局变量
global_var = "我是全局变量"

def my_function():
    # 在函数内部访问全局变量
    print(global_var)

my_function()  # 可以访问全局变量
print(global_var)  # 在函数外部也可以访问

3. 全局变量的修改

如果需要在函数内部修改全局变量的值,必须使用global关键字声明:

global_var = 10

def modify_global():
    # 声明要修改的全局变量
    global global_var
    global_var = 20  # 修改全局变量的值

modify_global()
print(global_var)  # 输出 20,全局变量已被修改

如果不使用global关键字,函数内部会创建一个同名的局部变量,而不会影响全局变量:

global_var = 10

def modify_global():
    # 这里创建了一个同名的局部变量,不会影响全局变量
    global_var = 20
    print("函数内部的变量:", global_var)  # 输出 20

modify_global()
print("全局变量:", global_var)  # 仍然输出 10

4. 注意事项

  • 尽量避免过多使用全局变量,会降低代码的可读性和可维护性
  • 函数内部可以直接访问全局变量,但修改时必须使用global声明
  • 当局部变量与全局变量同名时,函数内部会优先使用局部变量
  • 在嵌套函数中,可以使用nonlocal关键字来修改外层函数的变量(非全局变量)

合理使用局部变量和全局变量,可以使代码结构更清晰,减少变量名冲突。

0 条评论

目前还没有评论...