• events.py 知识点记录


    1._all_

    __all__是一个字符串list,其他模块中使用from xxx import *的时候只能导入__all__列表里的内容
    
    

    2.sys.version_info

    获取版本号

    import sys
    print(sys.version_info)
    

    输出

    sys.version_info(major=3, minor=7, micro=2, releaselevel='final', serial=0)
    

    比较时候

     sys.version_info >= (3, 4) #是个元组
    

    3.inspect.unwrap

    装饰器的解包,前提是装饰器上添加了@wraps(func)装饰器。
    参考链接:https://www.cnblogs.com/blackmatrix/p/6875359.html

    4.__wrapped__获取被装饰之前的方法

    5.判断是否是方法 inspect.isfunction

    如果是输出True,否则False。

    4-5涉及的代码

    from functools import wraps
    import inspect
    def log(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            result = func(*args)
            print(func.__name__,'has been called')
            return result
        return wrapper
    
    #等价于add = log(add)
    @log
    def add(x, y):
        result = x+y
        return result
    
    if __name__ == '__main__':
        print(add(1, 3))
        print(inspect.isfunction(int))
        orig_add = add.__wrapped__
        print(inspect.isfunction(orig_add))
        print(orig_add(1,3))
    

    输出

    add has been called
    4
    False#int不是方法所以输出了Flase
    True
    #上面的是被装饰器装饰后的函数调用结果
    #下面是被装饰前的函数的结果
    4
    
    

    6.__code__获取代码行数或者代码所在文件

    用的还是4-5的代码

        if inspect.isfunction(orig_add):
            code = orig_add.__code__
            print (code.co_filename, code.co_firstlineno)
    

    输出

    /Users/chennan/pythonproject/demo/asyncdemo/1.py 12
    
    
  • 相关阅读:
    SpringBoot使用SpringSession和redis解决session共享问题(nginx反向代理)
    centos7中安装和配置nginx和keepalived
    定位
    css
    css美化
    html5
    列表,表格,媒体元素
    表单
    一期测试错题修改
    字符串
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10339286.html
Copyright © 2020-2023  润新知