zoukankan      html  css  js  c++  java
  • 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
    
    
  • 相关阅读:
    学习进度——第五周
    构建之法阅读笔记02
    学习进度——第四周
    整型数组——首尾相连
    构建之法阅读笔记01
    二维数组
    学习进度——第三周
    新最大子数组——数量级和数量无限大
    最大子数组求和
    P3388 【模板】割点(割顶)题解 tarjan求割点
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10339286.html
Copyright © 2011-2022 走看看