首页 > 解决方案 > 如何重新加载文件并能够在不以python中的模块名称为前缀的情况下调用它?

问题描述

我有一个功能:

def f():
   print('hi')

保存在一个文件中example.py

我在 Windows 上启动提示并点击python

并键入以下命令:

from importlib import reload
import example
from example import *

然后我更改文件中的某些内容example.py并点击reload(example). 但它只有在我打电话时才有效example.f()。我是否总是必须添加额外from example import *的才能f()在重新加载后调用?有没有更好的方法来实现这一目标?

标签: pythonpython-3.x

解决方案


from example import *不,除了在重新加载模块后执行显式操作之外,没有其他方法可以实现这一点。另一方面,一般来说(命名空间污染)导入模块以外的任何东西都不是一个好习惯。直接导入类和函数通常是一种不好的做法,您应该始终避免这种做法,尤其是from A import *. 永远不要那样做。


推荐阅读