Python globals和locals函数_reload函数

Posted Hany博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Python globals和locals函数_reload函数的主要内容,如果未能解决你的问题,请参考以下文章

Python之内置函数

Python之路——内置函数

Python 内置函数 locals() 和globals()

python初识之内置函数一

python globals()和locals(),global和nonlocal,以及闭包

016.Python闭包函数以及locals和globals