函数-变量作用域
变量的作用域指的是变量的作用范围(标识这个变量在哪里可以使用,在哪儿不可以使用)。
- 在函数内部定义的变量就是局部变量,函数外声明的变量是全局变量。
全局变量在整个文件中(包括函数内)都可以使用(通常定义在文件的顶部)。
局部变量只能在该函数内部使用,外部无法访问(函数执行完毕后,会自动销毁其内部局部变量)。
-
global关键字的作用:在函数内部使用,声明接下来要使用的是全局变量,语法:global ***
-
注意事项:
尽量避免在函数中使用全局变量,因为会使代码难以维护和调试;
考虑使用函数参数和返回值来传递数据,而不是依赖全局变量;
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("调试模式已关闭")