稍后重写的导入标识符的未解析引用

Unresolved reference for imported identifiers that are later rewritten

当我在我的文件顶部导入一个函数并稍后在一个函数中使用它时,我稍后在其中重新分配它,python 抱怨 Unresolved reference '_',例如:

from django.utils.translation import ugettext_lazy as _

def test():
    msg = _('Message')  # <= Unresolved reference '_'

    instance, _ = Something.objects.get_or_create(...)

这里发生了什么?为什么 python 在评估函数时说 Unresolved reference ,而它只是在下一行稍后重新分配?

这只是一个 duplicate,但由于 PyCharm 生成不同的错误消息,这将是一个答案。

由于您在函数中分配给 _,因此在该函数中 所有 使用 _ 指的是局部变量而不是全局变量(导入函数)。 PyCharm 识别它,但无法确定它的类型。