【发布时间】:2019-06-23 16:20:06
【问题描述】:
我正在使用这个装饰器以 DRY 方式管理 __all__:
def export(obj):
mod = sys.modules[obj.__module__]
if hasattr(mod, '__all__'):
mod.__all__.append(obj.__name__)
else:
mod.__all__ = [obj.__name__]
return obj
对于使用import * 导入的名称,PyCharm 会发出unresolved reference 错误,这是可以理解的,因为它在分析之前不会运行代码。但这是一个明显的不便。
你会如何解决它(或者可能已经解决了)?
我的假设:
- 添加一些自动 linter 插件或更改现有 PyCharm 的检查代码都可以。
- 实际编辑
.py源的内容是可行的,但不是很好。 - 此方法可能不是最好的方法,因此建议另一种处理导出的便捷技术也很好。
【问题讨论】:
-
@user2235698 不错!您能否建议一些自动更新此存根的方法并提供 py、pyi 文件及其用法的简单示例(以了解您的想法应该如何工作)?我会勾选那个答案。
标签: python pycharm static-analysis