4

问题

我已将 ugettext_lazy 导入为 _ 但 pylint 抱怨 _ 不可调用。有没有办法忽略这个错误信息?

from django.utils.translation import ugettext_lazy as _
...
class A(models.Model):
    name = models.CharField(max_length=255, verbose_name=_("Name"))

回答

看来我已经找到了一半的答案。有一种方法可以忽略某些消息。

[MESSAGES CONTROL]
disable=E1102[,<msg id>]+

获取消息和 ID 列表:

shell> pylint --list-msgs

为什么它只有一半的解决方案?好吧,不,它不会报告这样的情况:

asdf = 5
asdf()

也许有一种方法可以指定错误原因,但那是另一天:|。

谢谢你们。

4

4 回答 4

4

禁用 pylintrc 文件中的消息以避免误报绝对不是解决方案,因为它将完全停用此检查。

看看 django 的源代码,好像 pylint 不喜欢这些lazy()东西。Django 人可能应该阅读http://www.logilab.org/blogentry/78354并启动一个 django 特定插件,它可以轻松解决此类问题。

于 2012-04-10T16:50:37.493 回答
3

在您的 pylintrc 文件中添加以下内容

[VARIABLES]
additional-builtins=_

这会将下划线符号添加到应该在内置函数中定义的附加名称列表中,并且 pylint 不会抱怨它。

于 2017-06-09T19:05:30.253 回答
1

pylint --additional-builtins=_ ...将在大多数情况下完成工作。

于 2015-09-09T09:44:03.923 回答
-2

_ 指最后输出的值

所以,这可能是错误原因

>>> 1 + 1
2
>>> print _
2
>>> _("foo")
 TypeError: 'int' object is not callable
于 2017-04-05T18:19:07.423 回答