拜师——python基础入门—第7大节课— 函数: LEGB 规则.——day30

第90课时: LEGB 规则.



LEGB原则:

Python在查找“名称时”是按照LEGB原则查找的;
即: local—àenclosed----》global——built in,

Local 是函数内部

Enclosed 是镶嵌函数内部

Global 模块中的全局变量

Built in python 自己保留的特殊名称。

(由函数内向函数外依次向函数外部查找的顺序)


测试:LEGB原则

def outer():
    str="outer"
    def inner():
        str = 'global'
        print(str)
    inner()
outer()

global

可以看到,首先查找当地函数内部的变量


def outer():
    str="outer"
    def inner():
        #str = 'global'
        print(str)
    inner()
outer()

outer

将内部函数的str变为注释,这时候打印的就是外部函数的 str (outer)



str="waibu"
def outer():
    #str="outer"
    def inner():
        #str = 'global'
        print(str)
    inner()
outer()

waibu

可以看到,把 outer()内的str也换成注释之后,打印出的是最外层的全局变量str



str="waibu"
def outer():
    #str="outer"
    def inner():
        str = 'global'
    inner()
    print(str)
outer()

waibu

没有向内查找,而是向外查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值