Python基础------作用域

本文深入解析Python中的作用域概念,包括局部、嵌套、全局及内置作用域的区别,变量的搜索顺序,以及global和nonlocal关键字的使用。通过具体代码示例,帮助读者理解变量在不同作用域内的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定义:

1.作用域指的是变量的可用范围

二、作用域的分类

按作用域声明的位置不同可分为四类

局部作用域函数体中声明的变量
嵌套作用域嵌套函数体中外层函数体总声明的变量
全局作用域

py文件中声明的变量

内置作用域Python提供的变量(函数)

三、作用范围

内置作用域 > 全局作用域 > 嵌套作用域 > 局部作用域

注意:只能小的作用范围访问大的作用范围

 

c=30
def outter():
    a=10
    def inner():
        b=20
        print(b)
        print(a)
   #print(b)#超出他的作用范围,报错
    inner()
    print(c)
outter()
print('sss')


结果:
20
10
30
sss

 

 解析:

 

 

四、变量的搜索顺序

局部作用域-->嵌套作用域-->全局作用域-->内置作用域

先从当前位置查找,如果找到则立即停止查找,如果没有找到,就网上一层找,以此类推,如果都没有找到,报错

 

 

a=1
def outter():
    a=10
    def inner():
        a=20
        print(a)
    inner()
outter()
print(a)



结果:
20
1

 

解析:

 

五、了解global和noolblobal

1.global关键字可以将一个局部变量变成一个全局变量

2.noolblobal关键字可以修改外层(非全局)变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值