Python基础学习第十五天,作用域+if __name__=="__main__"

122 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情

作用域

全局变量和局部变量,之所以有区分主要是范围

而这个范围在Python中也叫作用域。粗俗点讲就是,有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。

局部变量

一般指函数内部定义的变量,它的作用域也仅限于函数内部,即这个变量的使用范围只有在函数内部。

举个例子:

b_1 = "我是外部的"
def demo():
    b_1 = "我是内部的"
    print(b_1)
print(b_1)
demo()

结果如图

image.png

这边很明显能看出同名b_1的外部变量和内部变量互不相干。

当然,传入自定义函数的参数也是作为自定义函数的局部变量。

举个例子:

b_2 = "我是外部的"
def demo(b_2):
    print(b_2)
demo("我是内部的")
print(b_2)

结果如图:

image.png

全局变量

全局变量一般指在自定义函数外定义的变量。它的作用范围覆盖整个代码,既可以放在函数内部使用也可以在外部使用。

全局变量的定义方式有两种,直接上例子吧。

global_b = "全局变量"
def demo():
    print(global_b)
demo()
print(global_b)

结果如图:

image.png

def demo():
    global global_b
    global_b= "全局变量"
    print(global_b)
demo()
print(global_b)

结果如图:

image.png

在使用第二种方式的时候一定要注意,先声明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("这个是作用域文件")

结果:

image.png

二:

import 作用域 as g
g
print("当前在推导式文件")

结果:

image.png

大致效果就是这样,一般可以用在项目的编写时的调试。