美文网首页
python 模块的加载机制与模块的重新载入

python 模块的加载机制与模块的重新载入

作者: 顽强的猫尾草 | 来源:发表于2019-05-29 16:31 被阅读0次

    加载模块

    import 与 from 都是赋值语句。

    • import 把整个模块对象赋值给一个变量名。比如 import A : 一个文件名为 A.py 的模块被导入,生成了一个模块对象,被赋值为 A。
    • from module import x:x 引用了模块中同名变量的对象。若模块没有被加载过,from 语句会将模块首先加载,再创建与模块中同名的变量名进行引用。

    如果想要 import dir1.dir2.mod,则目录 dir1、dir2 下必须有个 __init__.py。__init__.py 的作用是把这个目录当成一个模块来使用 , 因为目录并不是实际的模块文件。__init__.py 可以随意写入任何 python 代码,也可以是空的。

    当代码运行起来后,模块就已经全部被加载到内存中了。这是如果对 python 脚本进行修改,不会在当前运行中生效。如果想立即执行新的代码,可以重新加载这个模块。

    重新加载模块

    使用方法:

    # Python3
    from imp import reload
    reload(modulename)
    

    注意:

    • reload 会重新加载已加载的模块,但原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;
    • reload 不支持 from [module] import [object] 格式的重新加载,事实上只要重新加载 module 即可。

    References
    [1] python模块,reload所有模块以及坑
    [2] Python reload() 函数

    相关文章

      网友评论

          本文标题:python 模块的加载机制与模块的重新载入

          本文链接:https://www.haomeiwen.com/subject/nzvytctx.html