zoukankan      html  css  js  c++  java
  • day 12 zuoye

    复习

    
    
    # 函数 —— 2天
        # 函数的定义和调用
        # 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
            # @wrapper
            # def func():   #inner
            #     pass
            #
            # func.__name__
        # 带参数的装饰器
            # @wrapper -- > @warapper(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):
            #     @wraps(func)
            #     def inner(*args,**kwargs):
            #         print('before 1')
            #         print('******')
            #         ret = func(*args,**kwargs)   # func是被装饰的函数 在这里被调用
            #         '''在函数被调用之后添加的代码'''
            #         return ret
        # def wrapper2(func):
        #     @wraps(func)
        #     def inner(*args,**kwargs):
        #         print('before 2')
        #         ret = func(*args,**kwargs)   # func是被装饰的函数 在这里被调用
        #         '''在函数被调用之后添加的代码'''
        #         return ret
        #   @wrapper1
        #   @wrapper2
        #   def func():
        #       print('111')
    # 迭代器和生成器 —— 两天
    # 内置函数 —— 两天
    
    
  • 相关阅读:
    大型网站数据库架构分析
    Mysql 存储引擎中InnoDB与Myisam的主要区别
    设计模式培训之一:为什么要用单例模式?
    架构师成长之路
    hdoj1257 最少拦截系统
    hdoj2571 命运
    hdoj1010 Temperor of the bone
    hdoj1175 连连看
    ny220 推桌子
    ny168 房间安排
  • 原文地址:https://www.cnblogs.com/xibanqiu/p/12374285.html
Copyright © 2011-2022 走看看