知识总结和记录——函数进阶

命名空间和作用域

 

命名空间一共分为三种:

  全局命名空间

  局部命名空间

  内置命名空间

 

三种命名空间之间的加载与取值顺序:

加载顺序:内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程序运行中:调用时才加载)

 

作用域

全局作用域:包含内置名称空间、全局名称空间,在整个文件的任意位置都能被引用、全局有效

局部作用域:局部名称空间,只能在局部范围内生效

 

globals和locals方法

locals() 函数会以字典类型返回当前位置的全部局部变量。(只读)

globals() 函数会以字典类型返回当前位置的全部全局变量。(更多在局部修改全局变量)

 

nonlocal关键字

 # 1.外部必须有这个变量

# 2.在内部函数声明nonlocal变量之前不能再出现同名变量

# 3.内部修改这个变量如果想在外部有这个变量的第一层函数中生效

闭包函数

内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数

#函数内部定义的函数称为内部函数

def func():
    name = 'eva'
    def inner():
        print(name)
    return inner

f = func()
f()

 

转载于:https://www.cnblogs.com/CrazyDemo/p/10456428.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值