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

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12299945.html