【Python笔记】Python基础 —— 作用域

本文详细介绍了Python编程中的作用域概念,包括LEGB规则、作用域规则、搜索规则、全局变量的使用及变量掩盖和修改规则。通过实例解析了不同作用域内的变量访问,并探讨了代码块和全局变量的安全性问题,还提到了nonlocal关键字和其他访问全局变量的方法。
摘要由CSDN通过智能技术生成

作用域

.

  • 描述

作用域是针对变量而出现。当变量被赋值的时候,变量当前的位置就决定了变量能够被访问到的范围,这个范围就叫变量的作用域

官方文档:

A scope is a textual region of a Python program where a namespace is directly accessible. “Directly accessible” here means that an unqualified reference to a name attempts to find the name in the namespace.

.

  • 四种作用域(LEGB)

a.L(Local):最内层,包含局部变量,比如一个函数/方法内部

b.E(Enclosing):包含了非局部也非全局的变量

c.G(Global):当前脚本的最外层,比如当前模块的全局变量

d.B(Built-in):包含了内建的变量/关键字等

.

  • 作用域的规则

a.本地作用域是函数内部属于本函数的作用范围,因为函数可以嵌套函数,嵌套的内层函数有自身的内层范围

b.嵌套函数的本地作用域是属于内层函数的范围,不属于外层

c.全局作用域是文件级别的,或者说是模块级别的,每个py文件中处于顶层的变量都是全局作用域范围内的变量

d.内置作用域是预先定义好的,在__builtins__模块中。这些名称主要是一些关键字,例open、range、list等
.

  • 实例
x = 1

def out1(i):
    x = 2
    y = 'a'
    print(x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值