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