我的文件/模块顶部有以下内容,说明了如何定义各种类型(有点像 C 文件中的声明):
Env = dict # The Interpreter environment is a map of {key: value}
然后在代码的实际内容中,我重新定义了
Env
,如下所示:
class Env(dict):
"An environment dict, containing the parent Env (or None) where created."
def __init__(self, parent=None):
self.parent = parent
# etc.
Pylint 给了我以下警告:
函数重新定义:类已定义第 16 行
我理解为什么要这样做,但在上述情况下这是故意的。建议的处理方法是什么?做类似下面的事情似乎是最权宜的方法(但是如果我应用这种“让我们在这里解雇这个”哲学,我发现我的文件每隔一行都散布着所有这些评论),但是在这种特殊情况下,有人会建议什么?
class Env(dict): # pylint: disable=function-redefinition
另外,做
# pylint:
的事情叫什么名字? (评论/注释/Pragma/?)
此外,这里有一个关于
mypy
中类型重新定义的有用线程:https://github.com/python/mypy/issues/1191.
看起来这是一个例外,因此禁用它是有意义的。您需要添加以下内容:
# pylint: disable=function-redefined
注意,这不是“函数重定义”,而是“函数重定义”。
您可以按照您的建议添加注释,以便它仅适用于这种情况,或者添加到 python 文件的顶部,以便它适用于整个文件。