变量作用域:局部变量、全局变量与关键字
一个编程里相当重要的概念是变量作用域, 其决定程序里变量的可访问性, 理解变量作用域能助您避免错误, 还能编写更清晰的代码, 本教程会介绍局部变量、全局变量以及关键字。
什么是变量作用域?
变量在程序里的可见以及可访问范围被称作变量作用域, 简略来讲, 它界定了在代码中的哪部分能够运用特定的变量, 在其中的变量作用域主要分成两种, 分别是局部作用域和全局作用域。
局部变量
函数之中所定义的被称作局部变量的变量, 它们唯在定义自身的那个函数范围之内才具备有效性, 于函数外部是根本没有办法去访问这些变量的, 这所表达的意思就是, 要是您于某一个函数当中创建了一个变量, 那么它仅仅能够在该函数的内部被加以使用。
示例:
def my_function(): x = 10 # x是局部变量 print(f"在函数内部: x = {x}") my_function() print(f"在函数外部: x = {x}") # 这会引发NameError,因为x在函数外部不可见于上部之代码里, 变量x于函数之内进行定义, 因而它属于局部变量。去尝试于函数外头打印x, 则会引发错误, 缘由于x不在当下之作用域以内。
全局变量
全局变量, 其为位于函数外部所定义的变量, 它们在整个程序范围之内皆是可见的, 能够从任何一处来进行访问, 其中也涵盖函数的内部, 这使得您能够于不同的函数之间实现数据的共享。
示例:
y = 20 # y是全局变量 def another_function(): print(f"在函数内部: y = {y}") # 可以访问全局变量y another_function() print(f"在函数外部: y = {y}") # 同样可以访问全局变量y这里, y是在函数的外部进行定义的, 因此它属于全局性的变量,能够在函数的内部以及函数的外部进行访问。
关键字
有时候, 您也许会想要于函数内部去修改全局变量当中的值, 在默认情形之下, 要是您于函数内部针对一个全局变量进行重新赋值的操作, 那么就会创建出一个新的局部变量, 而可不是去修改全局变量, 这样的情况有可能会引发混淆。
通过使用关键字, 您进而能够告知, 函数内部的变量所引用的乃是全局变量, 如此一来便允许您于函数之中着手对其进行修改。
示例:
z = 30 # z是全局变量 def modify_function(): global z # 使用global关键字声明z是全局变量 z = 40 # 现在修改全局变量z print(f"在函数内部修改后: z = {z}") modify_function() print(f"在函数外部: z = {z}") # 输出修改后的值如果不使用关键字:
z = 30 def modify_function_without_global(): z = 40 # 这创建了一个新的局部变量,而不是修改全局变量z print(f"在函数内部: z = {z}") # 输出40 modify_function_without_global() print(f"在函数外部: z = {z}") # 输出30,全局变量z未改变常见注意事项总结
经由把控这些概念, 您能够更具自信地处置当中的变量, 规避常见 , 持续练习中, 试着于各异场景里头运用这些概念,籍此去加深理解。
进行更为深入的学习, 去探索, 那处于探索过程当中的内置函数, 以及模块, 还有类作用域, 以此来扩展您所拥有的知识。