如何在 Python 控制台中重新加载模块?
How do I reload a module in the Python console?
我正在使用 PyCharm 和 Python 3.7。在我的 Python 控制台中,如何重新加载我已更改的模块?我创建了一个文件 "services.py",其中我在
中创建了一个服务 class
class ArticlesService:
def process(self):
当我在控制台中对此进行测试时,我似乎不知道如何重新加载它。这是我得到的错误
from mainpage.services import ArticlesService
importlib.reload(ArticlesService)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 140, in reload
raise TypeError("reload() argument must be a module")
TypeError: reload() argument must be a module
如何引用我的 class 来重新加载它? (或者更好的是,如何让控制台自动重新加载我更改的所有内容?)
from mainpage.services import ArticlesService
仅将 class 导入您的命名空间,因此您没有对命名空间中模块的引用。来自 importlib.reload 文档:
Reload a previously imported module. The argument must be a module object, so it must have been successfully imported before.
所以如果你想稍后重新加载,请确保导入模块:
import importlib
import mainpage
from mainpage.services import ArticlesService
...
importlib.reload(mainpage)
这也应该有效:
import importlib
import mainpage.services
from mainpage.services import ArticlesService
...
importlib.reload(mainpage.services)
我正在使用 PyCharm 和 Python 3.7。在我的 Python 控制台中,如何重新加载我已更改的模块?我创建了一个文件 "services.py",其中我在
中创建了一个服务 classclass ArticlesService:
def process(self):
当我在控制台中对此进行测试时,我似乎不知道如何重新加载它。这是我得到的错误
from mainpage.services import ArticlesService
importlib.reload(ArticlesService)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 140, in reload
raise TypeError("reload() argument must be a module")
TypeError: reload() argument must be a module
如何引用我的 class 来重新加载它? (或者更好的是,如何让控制台自动重新加载我更改的所有内容?)
from mainpage.services import ArticlesService
仅将 class 导入您的命名空间,因此您没有对命名空间中模块的引用。来自 importlib.reload 文档:
Reload a previously imported module. The argument must be a module object, so it must have been successfully imported before.
所以如果你想稍后重新加载,请确保导入模块:
import importlib
import mainpage
from mainpage.services import ArticlesService
...
importlib.reload(mainpage)
这也应该有效:
import importlib
import mainpage.services
from mainpage.services import ArticlesService
...
importlib.reload(mainpage.services)