14-python函数的作用域和命名空间

作用域和命名空间

1 作用域

1.1 作用域简介

作用域直白来说就是产生作用的区域

程序中指的是:变量生效的区域

y = 2
def fn():
    x = 1
    print("函数内部y = ",y)
fn()
print("函数外部y=",y)

1.2 全局作用域

全局作用域就是在全局都有效

全局作用域的生命周期:全局作用域在程序执行时创建,在程序执行解释时销毁

所有函数以外的都是全局作用域

只要代码不是在函数里面的都是全局作用域

y = 2
def fn():
    x = 1
    print("函数内部y = ",y)
fn()
print("函数外部y=",y)

1.3 函数作用域(局部作用域)

生命周期:在函数调用时创建,在调用结束时销毁

在函数作用域中定义的变量只能在函数内部访问,或者说在函数作用域中定义的变量,都可以叫做局部变量

def fn():
    a = 10
    print("内部a=",a)
print("外部a = ",a)  # 报错,在函数外部是无法范文的
def fn1():
    a = 30
    def fn2():
        print(a)
    fn2()
fn1()

可以从小的往大的看,但是不能从大的往小的看

def fn1():
    def fn2():
        a = 10
    print(a)  # 不能从外往里看
fn1()
# 使用变量的时候,会优先在当前作用域中寻找该变量,没有就继续往上一级作用域寻找
def fn1():
    a = 20
    def fn2():
        a = 10
        print(a)
    fn2()
fn1()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JC03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值