• Python globals和locals函数_reload函数


    Python globals和locals函数_reload函数:

    globals( ):

    返回所有能够访问到的全局名字

    num = 5
    sum = 0
    
    def add(num):
        func_sum = 0
        func_sum += num
        return func_sum
    
    print(globals())
    '''
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001BA38F1DB08>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/见解/Python/Python代码/vacation/备课/globals 和 locals函数.py', '__cached__': None, 'num': 5, 'sum': 0, 'add': <function add at 0x000001BA3915B678>}
    
    '''

    locals( ):

    在函数中使用 locals ,返回形参和局部变量

    num = 5
    sum = 0
    
    def add(num):
        func_sum = 0
        func_sum += num
        print(locals())
        return func_sum
    
    add(num)
    # {'num': 5, 'func_sum': 5}

    reload(模块名):reload 在 importlib 模块中

    重新导入之前导入过的模块

    注:当一个模块导入到另一个脚本时,模块顶层部分的代码只会被执行一次

    # 重新导入模块
    import func
    # 导入自定义的模块
    from importlib import reload
    # reload 函数在 importlib 模块中
    reload(func)
    # 重新导入 func 模块
    from func import get_info
    get_info()
    # 获取到了 func 模块的信息

    使用reload的前提,是reload的 模块,之前已经使用import或者from导入过,否则会失败

    import 导入的模块,使用模块名.方法的方式,reload会强制运行模块文件,然后原来导入的模块会被新使用的导入语句覆盖掉

    from 导入的模块,本质是一个赋值操作,即在当前文件中(即执行 from 语句的文件)进行 attr = module.attr

      注:reload 函数对 reload 运行之前的from语句没有影响


    2020-02-12

  • 相关阅读:
    Eclipse EE 3.6 failed to create the java virtual machine 解决
    [收藏]家用三线插座(220V单相)正确接线方法
    Java设计模式 Design Pattern:包装模式 Decorator Pattern
    MIME 类型列表
    面试题参考
    循环队列的运用求K阶斐波那契序列
    加密技术仿射密码
    面试题集锦_1
    栈的运用(5)转换逆波兰式
    栈的运用(6)逆波兰式求值
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12299945.html
Copyright © 2020-2023  润新知