【发布时间】:2021-05-11 23:46:06
【问题描述】:
我有一个 config.py 文件,其中有一个常量列表,例如:
config.py
NAME = 'John'
AGE = 23
在另一个文件中,我将此文件作为模块导入,然后将其作为参数传递给其他函数。我使用 ModuleType 作为这个参数的类型。
import config
from types import ModuleType
def f1(config: ModuleType) -> None:
print(config.NAME)
问题是我运行pyright linter时,报错:
79:30 - error: Cannot access member "NAME" for type "ModuleType"
Member "NAME" is unknown (reportGeneralTypeIssues)
输入提示配置以避免这些错误的正确方法是什么?谢谢!
【问题讨论】:
-
我正在尝试重新创建它以进行测试,但我无法在任何地方找到 typing.ModuleType。我也看过文档,但也没有。你是怎么得到你的?
-
因为打字时没有
ModuleType。from types import ModuleType。而且从types导入ModuleType后没有发现问题。 -
@12944qwerty 是的,应该是
types而不是typing -
@m.i.cosacak 是的,我发现了很多。但不知何故,OP 能够从打字中得到它......除非 linter 没有认识到 ModuleType 不是来自打字。 OP 是使用 python 还是仅通过 linter 运行文件?
-
嗯,我刚刚通过使用
types导入测试了它,它似乎可以工作。我认为这个问题可以通过错字修复来回答,对吗?