开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情
作用域
全局变量和局部变量,之所以有区分主要是范围。
而这个范围在Python中也叫作用域。粗俗点讲就是,有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。
局部变量
一般指函数内部定义的变量,它的作用域也仅限于函数内部,即这个变量的使用范围只有在函数内部。
举个例子:
b_1 = "我是外部的"
def demo():
b_1 = "我是内部的"
print(b_1)
print(b_1)
demo()
结果如图
这边很明显能看出同名b_1的外部变量和内部变量互不相干。
当然,传入自定义函数的参数也是作为自定义函数的局部变量。
举个例子:
b_2 = "我是外部的"
def demo(b_2):
print(b_2)
demo("我是内部的")
print(b_2)
结果如图:
全局变量
全局变量一般指在自定义函数外定义的变量。它的作用范围覆盖整个代码,既可以放在函数内部使用也可以在外部使用。
全局变量的定义方式有两种,直接上例子吧。
global_b = "全局变量"
def demo():
print(global_b)
demo()
print(global_b)
结果如图:
def demo():
global global_b
global_b= "全局变量"
print(global_b)
demo()
print(global_b)
结果如图:
在使用第二种方式的时候一定要注意,先声明global 变量,否则容易报错。
其他
这边提一嘴 if __name__ =="__main__":
带上了这个只是说,确认是不是在本个py文件中运行。
这边分别举两种例子:一是在本个py文件运行的情况,二是在其他文件中引用那个py文件运行。
一:
def demo():
global global_b
global_b= "全局变量"
print(global_b)
demo()
print(global_b)
if __name__ =="__main__":
print("这个是作用域文件")
结果:
二:
import 作用域 as g
g
print("当前在推导式文件")
结果:
大致效果就是这样,一般可以用在项目的编写时的调试。