python - 如何重新加载文件并能够在不以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()
在重新加载后调用?有没有更好的方法来实现这一目标?
解决方案
from example import *
不,除了在重新加载模块后执行显式操作之外,没有其他方法可以实现这一点。另一方面,一般来说(命名空间污染)导入模块以外的任何东西都不是一个好习惯。直接导入类和函数通常是一种不好的做法,您应该始终避免这种做法,尤其是from A import *
. 永远不要那样做。
推荐阅读
- sql - 如何创建可以在单个 SQL 子查询中引用先前数据条目的 SQL 层次结构
- c# - 如何在 Azure Cosmos DB Mongo API 中添加权重作为创建索引的一部分
- c# - 将 Storyboard 制作成 WPF 中多个控件可以使用的资源
- wordpress - 以下资源具有相同的内容,但来自不同的 URL。从一致的 URL 提供这些资源以保存 1 个请求
- c# - 如何将 @Html.TextBox 的值存储到变量中
- premake - 如何为 Premake 中的特定文件添加标志配置?
- python - 如何通过将 csv 上传到数据存储区来更新数据存储区中的某些实体
- php - 在 Laravel 5.4 上过滤分页列表
- python - python - 在python中的PyArrow和C ++中的Arrow之间进行接口时如何将PyArrow表转换为Arrow表
- jquery - 如何知道 html 元素被 javascript(Jquery) 修改?