1. 基础篇:什么是局部和全局变量?
想象你在厨房做饭,ingredient
(食材)是全局的,因为整个厨房都能用到它。而当你在切洋葱时,那把刀(knife
)就是局部的,只在这个特定任务(函数)里使用。
ingredient = "洋葱"
def chop():
knife = "锋利的菜刀"
print(f"用{knife}切{ingredient}")
chop()
这里,knife
仅在chop
函数内部可见,就是局部变量,而ingredient
是全局变量,哪里都能访问。
2. 修改全局变量的第一坑:你以为你能改?
直接在函数里修改全局变量?Python可不轻易让你得逞!
global_var = 10
def change_global():
global_var = 20 # 注意,这只是创建了一个新的局部变量!
change_global()
print(global_var) # 猜猜看,输出是多少?
输出还是10!Python说:“嘿,你这是新建了个局部的global_var
,原来的我可没动哦。”
3. 正确修改全局变量:要用global
关键字!
想动我的全局变量?得先打招呼!
global_var = 10
def change_global_correctly():
global global_var
global_var = 20
change_global_correctly()
print(global_var) # 这次对了吧?
这次,输出是20,因为我们明确告诉Pyth