python提升篇

1.函数参数

def func01():
    print("func01 is show")

# func01()
# 函数名存放的是函数所在空间的地址
# print(func01)

# 函数名也可以像普通变量一样进行赋值
# func02 = func01
# func02()

def foo(func):
    func()

foo(func01)

2.闭包

# 闭包的构成条件:
# 1在函数嵌套(函数里面再定义函数)的前提下
def func_out(num1):   # num1=10
    def func_inner(num2):   # num2=1
        # 2内部函数使用了外部函数的变量(还包括外部函数的参数)
        num = num1 + num2
        print("现在的值:", num)
    # 3外部函数返回了内部函数
    return func_inner

# 创建闭包实例
f = func_out(10)    #  f = func_inner
# 执行闭包
f(1)   # func_inner(1)
f(2)

3.闭包的使用

# 外部函数
def config_name(name):
    # 内部函数
    def say_info(info):
        print(name + ":", info)

    return say_info

tom = config_name("花花")
tom("你好")
tom("你在么")

jerry = config_name("草草")
jerry("你好")
jerry("我在呢")

4.nonlocal的使用

# 外部函数
def func_out(num1):  # num1=10
    # 内部函数
    def func_inner(num2):    # num2=10
        nonlocal num1
        num1 = num2 + 10     # num1=20

    print(num1)
    func_inner(10)
    print(num1)

    return func_inner

# num1 = 10
# f = func_out(10)
# 调用闭包 = 内部函数 num2 = 10
# f(10)

func_out(10)

5.装饰器

# 定义装饰器
def check(fn):    # fn=comment
    def inner():
        print("登录验证功能===")
        fn()   # comment()
    return inner

def comment():
    print("发表言论=====")

comment = check(comment)    # check(comment) = inner ===> comment=inner
comment()   # inner()

6.装饰器的语法糖

# 定义装饰器
def check(fn):    # fn=comment
    def inner():
        print("登录验证功能===")
        fn()   # comment()

    return inner

@check     # comment=check(comment)
def comment():
    print("发表言论=====")

comment()

7.装饰器的使用

import time

# 定义装饰器
def get_time(fn):
    def inner():
        start = time.time()
        fn()
        end = time.time()
        print("消耗的时间为:", end-start)
    return inner

@get_time   # func = get_time(func)
def func():
    for i in range(100000):
        print(i)

func()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Windstormm

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

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

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

打赏作者

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

抵扣说明:

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

余额充值