Python编程开发基础学习之作用域

  Python已成为人工智能时代最受欢迎的编程语言,吸引了很多专业以及非专业人士的关注。在进行Python基础学习时,人们都会接触到作用域。什么是作用域?Python作用域包含哪些知识点呢?今天千锋小编就来给大家介绍一下如何学习作用域。

  作用域是什么?

  作用域(Scope)是Python程序的一块文本区域(textual region),在该文本区域中,对namespace是可以直接访问,而不需要通过属性来访问,Scope是定义程序该如何搜索确切地“名字-对象”的名空间的层级关系。Python中有四个作用域:局部作用域Local、嵌套函数(闭包)作用域Enclosing、全局作用域 Global、内置作用域 Built-in。

  Python作用域搜索顺序遵循LEGB规则搜,Local -> Enclosing -> Global -> Built-in即:L>E>G>B。当有一个变量在local域中找不到时,Python会找上一层的作用域,即 enclosing 域(该域不一定存在)。enclosing 域还找不到的时候,再往上一层,搜索模块内的 global 域。最后,会在 built-in 域中搜索。对于最终没有搜索到时,Python会抛出一个 NameError 异常。需要注意的是,作用域可以嵌套,如没创建一个对象都有一个作用域,对象中再创建对象。

  如何理解Python中变量的作用域?

  1)理解全局变量和局部变量。定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量;

  2)函数内部的变量名如果是第一次出现,且出现在=符号后面,且在之前已被定义为全局变量,则这里将引用全局变量;

  3)函数中使用某个变量时,如果该变量名既有全局变量也有局部变量,则默认使用局部变量;

  4)在函数中将某个变量定义为全局变量时需要使用关键字global。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值