Python023-第二章18.函数进阶1-函数变量作用域

函数-变量作用域

变量的作用域指的是变量的作用范围(标识这个变量在哪里可以使用,在哪儿不可以使用)。

  1. 在函数内部定义的变量就是局部变量,函数外声明的变量是全局变量。

全局变量在整个文件中(包括函数内)都可以使用(通常定义在文件的顶部)。

局部变量只能在该函数内部使用,外部无法访问(函数执行完毕后,会自动销毁其内部局部变量)。

  1. global关键字的作用:在函数内部使用,声明接下来要使用的是全局变量,语法:global ***

  2. 注意事项:

尽量避免在函数中使用全局变量,因为会使代码难以维护和调试;

考虑使用函数参数和返回值来传递数据,而不是依赖全局变量;

global主要用在程序的状态、配置和计数器等场景中。

python 复制代码
# 全局变量
num = 100

# 定义函数
def circle_area(r):
    # 局部变量
    pi = 3.14
    area = pi * r * r
    print("num = ", num)  # 全局变量在函数内部也可以访问
    return area

#print("pi = ", pi)
#print("area = ", area)  局部变量不能在函数外

# 调用函数
print("num = ", num)    # 全局变量在函数外部
c_area = circle_area(num)
print(c_area)

c_area2 = circle_area(10)
print(c_area2)

print("-------------------------------")

num = 200
def circle_area(r):
    pi = 3.14
    area = pi * r * r

    num = 20000
    print("num = ", num)    # 20000

    return area

# 调用函数
c_area = circle_area(10)
print(c_area)   # 314.0

print("num = ", num)    # 200

print("------------global-------------")
num = 100
def circle_area(r):
    pi = 3.14
    area = pi * r * r

    global num
    num = 10000
    print("num = ", num)    # 10000

    return area

# 调用函数
c_area = circle_area(10)
print(c_area)   # 314.0

print("num = ", num)    # 10000

global场景示范

python 复制代码
print("------------global场景示范-------------")

# 调试开关
debug_mode = False

def enable_debug_mode():
    global debug_mode
    debug_mode = True
    print("调试模式已开启")

def disable_debug_mode():
    global debug_mode
    debug_mode = False
    print("调试模式已关闭")