Python3-基础- 包、闭包

 包

包:包是模块的一种形式,包的本质就是含有.py文件的文件夹。

模块:模块就是封装好的具有特定功能的函数代码。例如sum()求和函数

py文件的两种功能

        1 脚本:一个文件就是完整的程序,用来直接执行。

        2 模块:一个文件中存放的某些功能函数,用来被导入使用。

if __name__ == '__main__':

        1 作用:用来控制py文件在不同的应用场景下执行不同的逻辑

        2 python中内置了全局变量__name__:

                当外部文件被当做脚本执行时  __name__ == __main__      if __name__ == '__main__':中的语句可以执行

                当外部文件被当做模块导入时  __name__ ==  模块名           if __name__ == '__main__':中的语句不可以执行

        3 相当于python模拟的程序入口,这是一种编程习惯

 闭包

闭包

        在嵌套函数的前提下,内部函数使用了外部函数的变量,

        而且外部函数返回了内部函数

        我们就把 使用了外部函数变量的 内部函数 称为 闭包

构成条件:

        1.函数中嵌套了一个函数

        2.内层函数使用了外层函数的变量

        3.外层函数的返回值是内层函数的函数名

# 例一
def outer():     # 外部函数
    n = 10
    def inner():  # 内部函数
        print(n)  # 在内函数中,用到了外部函数的变量
    return inner        # 外部函数的返回值是内部函数的函数名
print(outer())       # 返回的是内部函数的地址
ot = outer()
ot()          # 调用内部函数

# 总结:
# 函数名()= 调用函数
# 函数名 = 返回函数所在位置地址
# 例二
def outer(m):
    def inner(n):
        print('inner函数中的值:', m+n)
    return inner
# 第一种写法:
ot = outer(20)
ot(10)
# 第二种写法
outer(10)(20)
# 例三
# 每次开启内函数都在使用同一份闭包变量 即 m
def outer(m):       # 外函数
    print('out函数中的值:', m)
    def inner(n):   # 内函数
        print('inner函数中的值:', n)
        return m+n  # 在inner函数中返回m+n的值
    return inner
# 调用外函数,给outer函数传值10
ot = outer(10)
# 第一次调用内函数,给inner函数传值20
print(ot(20))
# 第二次调用内函数,给inner函数传值30
print(ot(30))

# 使用闭包的过程中,一旦外函数被调用一次返回了内函数的引用
# 虽然每次调用内函数。会开启一个函数,执行后消亡,但是闭包变量实际只有一份,每次开启内函数都在使用同一份闭包变量

 

 以上是作者学习总结,分享所学,共同进步。如若哪处有误,感谢指出!    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Q _Q

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

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

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

打赏作者

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

抵扣说明:

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

余额充值