当前位置:首页>研招网>Python基础篇 - 变量的作用域(Scope)

Python基础篇 - 变量的作用域(Scope)

  • 2026-09-20 12:49:03
Python基础篇 - 变量的作用域(Scope)
 变量的作用域

    今天的基础篇内容讲解变量的作用域的基本知识,大家这么聪明,一看就会了。

1. 变量的作用域:Python中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了哪一部分程序可以访问哪个变量,Python的作用域一共有4种: 1. 局部作用域(Local)、2. 嵌套作用域(Enclosing):内层函数的外层函数中、3. 全局作用域(Global)、4. 内建作用域(Built-in)。

查找规则:在局部找不到,便会去局部外的局部找(嵌套作用域),再找不到就会去全局找,再者去内建中找。

   代码示例:

# 该案例演示了变量的作用域a = int(1.8)  # 内建作用域(Built-in) (Python本身提供的,在所有位置都可以访问)b = 0.2  # 全局作用域(Global)def outer():    c = 1.1  # 嵌套作用域(Enclosing)    def inner():        d = 2.3  #局部作用域(Local)        print(d,c,b,a)    return innerin_func=outer()in_func()

1.1 全局变量与局部变量

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。

代码示例:

# 该案例演示了全局变量和局部变量sum = 0  # 全局变量def add(num1,num2) :    sum = num1 + num2  # 局部变量    print("函数内局部变量的值:",sum)    return sumprint(num1) # num1访问不到print("函数外全局变量:",sum,id(sum))

    1.2 global关键字

使用global声明全局变量后,可以修改全局变量。对于不可变数据:必须使用global关键字;对于可变数据:不需要使用global关键字也可以修改。

代码示例:

# 不可变类型,必须使用global关键字var1 = 100def function_a():    global var1    var1 = 200    print("var1:", var1)print(var1)  # 100function_a()  # var1: 200print(var1)  # 200# 可变类型数据:不需要使用global关键字也可以修改list1 = [1,5,9]def function_a():    list1[0] = -1000    print("list1:", list1)print(list1)  # [1, 5, 9]function_a()  # list1: [-1000, 5, 9]print(list1)  # [-1000, 5, 9]

1.3 nonlocal关键字

nonlocal关键字也用于内部作用域修改外部作用域的变量的场景,不过此时外部作用域不是全局作用域而是嵌套作用域,就是外层函数(闭包)。

代码示例:

def function_outer():    var1 = 100    def function_inner():        nonlocal var1        var1 = 200    function_inner()    print(var1)function_outer()  # var1: 200

总结:今日我们学习了Python基础篇-变量的作用域:通过学习变量的作用域,我们认识了Python中的4种作用域类型,明确了作用域的查找规则,也学习了global和nonlocal的使用方法及其场景。在Python基础篇,后续我们将持续学习Python基础知识,祝每一位study er学习愉快。

<合集链接>
这里是我滴合集内容链接,大家感兴趣就康康吧。
1. 人工智能进阶之路 - 机器学习篇
2. Origin-study
3. 人工智能进阶之路-Python基础篇
4. 充电er的乱坠闲聊(我自己的日常生活篇)
5. Origin认知
点个 赞 你最好看

最新文章

随机文章