Python变量的作用域

        在Python编程中,变量的作用域是一个关键的概念。作用域决定了变量的可见性和访问权限,理解作用域对于编写可靠的程序至关重要。

一、作用域简介
        在Python中,作用域指的是变量(或名称)的有效范围。根据作用域的不同,变量可以分为全局变量和局部变量。

全局变量:定义在模块顶层的变量,对整个模块都是可见的。

局部变量:定义在函数内部的变量,只在函数内部可见。

Python内置了四种作用域,分别是:

1. 局部作用域(Local scope):即函数内部定义的变量。
2. 嵌套作用域(Enclosing scope):指包含在函数中的另一个函数内部定义的变量。
3. 全局作用域(Global scope):即模块级别定义的变量。
4. 内置作用域(Built-in scope):即Python内置模块中定义的变量。

二、全局作用域
        全局作用域是指在模块层次上定义的变量。在模块中定义的变量对整个模块都是可见的。

x = 10  # 全局变量

def print_global_var():
    print(x)  # 可以访问全局变量

print_global_var()

        在上述代码中,我们在模块层次上定义了变量x,它具有全局作用域,并且可以在函数print_global_var中被访问。

注意:在函数内部如果尝试修改全局变量的值,需要使用global关键字声明变量x。

三、局部作用域
        局部作用域是指在函数内部定义的变量,局部变量只在其定义的函数内部可见。

def print_local_var():
    y = 5  # 局部变量
    print(y)  # 可以访问局部变量

print_local_var()

        在上述代码中,我们在函数内部定义了变量y,它具有局部作用域,只能在函数内部被访问。

四、嵌套作用域
        嵌套作用域是指包含在函数内的另一个函数内部定义的变量。在嵌套的函数中,可以访问外部函数定义的变量。

def outer_function():
    z = 15  # 外部函数中的变量

    def inner_function():
        print(z)  # 可以访问外部函数中的变量

    inner_function()

outer_function()

        在上述代码中,我们在outer_function中定义了变量z,然后在其内部定义了inner_function,在inner_function中可以访问外部函数中的变量z。

五、内置作用域
        内置作用域是指Python内置模块中定义的变量,这些变量对整个程序都是可见的。

print("Hello, world!")  # 内置作用域的函数print

import math
print(math.pi)  # 内置作用域的常量pi

在上述代码中,我们使用了Python内置的print函数和内置模块math中的常量pi,它们属于内置作用域。

六、作用域规则和注意事项

1. 变量查找顺序:在访问变量时,Python会按照“局部作用域 -> 嵌套作用域 -> 全局作用域 -> 内置作用域”的顺序进行查找。

2. 修改全局变量:在函数内部修改全局变量的值需要使用global关键字声明变量。

3. 避免名称冲突:尽量避免全局变量和局部变量重名,以免造成混淆和意外的结果。

4. 函数闭包:内部函数可以访问外部函数的变量,形成了闭包,可以实现一些有趣的功能。

5. 就近原则:在不同作用域定义了相同名称的变量时,Python会选择就近的作用域中的变量。

7. nonlocal关键字:用于在嵌套作用域中修改上一级(非全局)作用域中的变量值。

在编写Python程序时,了解作用域的规则和注意事项对于编写清晰、可维护的代码至关重要。作用域决定了变量的可见性和访问权限,合理地使用作用域可以避免变量命名冲突,提高代码的可读性和可维护性。

不知道人工智能如何学习?不知道单片机如何运作?不知道嵌入式究竟是何方神圣?搞不清楚什么是物联网?遇到问题无人可问?来我的绿泡泡交流群吧!里面有丰富的人工智能资料,帮助你自主学习人工智能相关内容,不论是基础的Python教程、OpenCV教程以及机器学习等,都可以在群中找到;单片机毕设项目、单片机从入门到高阶的详细解读、单片机的一系列资料也备好放入群中!关于嵌入式,我这里不仅仅有嵌入式相关书籍的电子版本,更是有丰富的嵌入式学习资料,100G stm32综合项目实战提升包,70G 全网最全嵌入式&物联网资料包,嵌入式面试、笔试的资料,物联网操作系统FreeRTOS课件源码!群内高手云集,各位大佬能够为您排忧解难,让您在学习的过程中如虎添翼!扫码进群即可拥有这一切!还在等什么?赶快拿起手机,加入群聊吧!扫码进群领资料

  • 20
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值