zoukankan      html  css  js  c++  java
  • day 12 函数

    函数
    函数的定义和调用
    def 函数名(形参):
    函数体
    return 返回值
    调用 函数名(实参)
    站在形参的角度上: 位置参数, *args, 默认参数(陷阱), 关键字参数, **kwargs
    站在实参的角度上: 按照位置传,按照关键字传
    返回值: 没有返回值,返回一个值, 返回多个值
    接受返回值: 没有返回值不接收,返回一个值用一个变量接收,返回多个值用一个变量或对应数目的变量接收
    闭包函数 ---- 在内部函数应用外部函数的变量
    装饰器函数 ---- 装饰器一定是闭包函数
    装饰器作用:在不改变原函数的调用方式的情况下,在这个函数的前后添加新的功能
    完美的符合了一个开发原则: 开放封闭原则
    对扩展是开放的
    对修改是封闭的
    基础的装饰器
    from functools import wraps
    def wrapper(func):
    @wraps(func)
    def inner(*args, **kwargs):
    '''在函数被调用之前添加的代码'''
    ret = func(*args, **kwargs) #func被装饰的函数 在这里被调用
    '''在函数被调用之前添加的代码'''
    return ret
    return inner
    使用 @wrapper
    完美的装饰器
    from functools import wraps
    @wraps(func)
    @wrapper
    def func():
    pass

    func() # 实际执行的是 inner()
    func.__name__ #取得实际此时此内存地址指向的函数名
    带参数的装饰器
    @wrapper ---> @wrapper(argument)
    三层嵌套函数
    def outer(形参):
    def wrapper(func):
    def inner(*args, **kwargs):
    '''在函数被调用之前添加的代码'''
    ret = func(*args, **kwargs) #func被装饰的函数 在这里被调用
    '''在函数被调用之前添加的代码'''
    return ret
    return inner
    return wrapper
    @outer(True)
    def func():
    pass
    多个装饰器装饰一个函数
    俄罗斯套娃
    def wrapper1(func):
    def inner(*args, **kwargs):
    print('before 1')
    ret = func(*args, **kwargs) #func被装饰的函数 在这里被调用
    '''在函数被调用之前添加的代码'''
    return ret
    return inner
    def wrapper2(func):
    def inner(*args, **kwargs):
    print('before 2')
    ret = func(*args, **kwargs) #func被装饰的函数 在这里被调用
    '''在函数被调用之前添加的代码'''
    return ret
    return inner
    水滴石穿步骤
    @wrapper1
    @wrapper2
    def func():
    print('1111')
    迭代器和生成器


    内置函数

    装饰器执行步骤:

    函数归纳

    
    
  • 相关阅读:
    python面试题解析(python基础篇80题)
    python面试题
    网络IO模型 主要 IO多路复用
    线程队列 线程池 协程
    线程的Thread模块 同步控制:锁,事件,信号量,条件,定时器
    进程池,线程的理论,Threading.Thread来创建线程
    进程之间的通信(IPC),对列,管道,数据共享.进程池初识
    Process 进程之间的数据隔离问题,守护进程,锁,信号量,事件
    js get the local domain and path fast
    github jekyll blog
  • 原文地址:https://www.cnblogs.com/77-is-here/p/10488910.html
Copyright © 2011-2022 走看看