Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是';重新加载';在这种情况下你会怎么做?_Python_Python 2.7 - Fatal编程技术网

Python 什么是';重新加载';在这种情况下你会怎么做?

Python 什么是';重新加载';在这种情况下你会怎么做?,python,python-2.7,Python,Python 2.7,为什么要装两次?”“重新加载”不是内置函数。对吧? 在这种情况下,“重新加载”的作用是什么 这取决于utils的功能。。。例如,如果导入utils具有副作用,则该作用将再次发生 还请注意,在任何生产代码中使用重新加载,这绝对是您想要避免的。reload存在的主要原因是为了交互使用 加载模块 测试它并查看一个bug 编辑模块 重新加载模块 试一试 找到答案的最佳方法是查看以下内容: Python模块的代码被重新编译,模块级代码被重新执行,定义了一组新的对象,这些对象绑定到模块字典中的名称。扩

为什么要装两次?”“重新加载”不是内置函数。对吧?

在这种情况下,“重新加载”的作用是什么

这取决于
utils
的功能。。。例如,如果导入
utils
具有副作用,则该作用将再次发生


还请注意,在任何生产代码中使用
重新加载
,这绝对是您想要避免的。
reload
存在的主要原因是为了交互使用

  • 加载模块
  • 测试它并查看一个bug
  • 编辑模块
  • 重新加载模块
  • 试一试

找到答案的最佳方法是查看以下内容:

  • Python模块的代码被重新编译,模块级代码被重新执行,定义了一组新的对象,这些对象绑定到模块字典中的名称。扩展模块的init函数不会再次调用

  • 与Python中的所有其他对象一样,旧对象只有在其引用计数降至零后才会被回收

  • 模块命名空间中的名称将更新为指向任何新的或更改的对象

  • 对旧对象的其他引用(例如模块外部的名称)不能用于引用新对象,如果需要,必须在出现新对象的每个命名空间中进行更新


  • 重载是python 2中的一个内置函数,为什么“副作用”需要再次发生?@user697911——我不知道为什么副作用需要再次发生:-)。我甚至不知道
    utils
    是否有副作用。在“编辑”一个模块后,您必须再次运行该模块,当您运行该模块时,第一个“导入utils”将再次执行。为什么需要重新加载(utils)才能获得效果?@user697911——您需要第一次导入来获取要重新加载的引用。每次导入都首先检查模块是否已导入。如果是,则不会再次导入。
    import utils; reload(utils)
    
    from utils import *