Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个python类中的'default'是一个flake8错误?_Python_Class Method_Flake8 - Fatal编程技术网

为什么这个python类中的'default'是一个flake8错误?

为什么这个python类中的'default'是一个flake8错误?,python,class-method,flake8,Python,Class Method,Flake8,我在第7行遇到一个flake8错误: import typing from dataclasses import dataclass @dataclass class Parameter: default: typing.Any = None 错误是: default: typing.Any = None 这是flake8解析中的一个错误吗?所以,有好消息也有坏消息 只是一套其他工具的包装,包括 好消息是,据我所知,这个问题在PyCodeStyle2.3.1中,在2.4

我在第7行遇到一个flake8错误:

import typing
from dataclasses import dataclass


@dataclass
class Parameter:
    default: typing.Any = None
错误是:

    default: typing.Any = None

这是flake8解析中的一个错误吗?

所以,有好消息也有坏消息

  • 只是一套其他工具的包装,包括
  • 好消息是,据我所知,这个问题在PyCodeStyle2.3.1中,在2.4.0中得到了修复
  • 坏消息是,flake8的当前版本3.5.0声称与pycodestyle 2.4.0不兼容。(请参阅,了解为什么他们甚至不尝试与包装的工具在未来兼容。)
  • 好消息是,如果您愿意安装GitLab或GitHub,那么当前的flake8主机支持pycodestyle 2.4.x(以及pyflakes 2.0.x)
  • 坏消息是还没有一个3.5.0后的里程碑,这意味着没有人声称当前的tip-of-tree已经过测试、稳定并准备发布,而且很可能他们还没有完成2.4.0的测试,他们只是更改了版本,因为这是他们打算支持的

如果在干净的3.7环境中安装pycodestyle 2.3.1和flake8 3.5.0(以及pyflakes 1.6.0),则可以重现此警告

如果我强制pip安装pycodestyle 2.4.0,即使flake8对此进行了投诉,警告也会消失

如果我在GitLab上安装flake8,它会拖入pycodestyle 2.4.0(和pyflakes 2.0.0),警告再次消失

这并不奇怪,因为2.4.0声称添加了Python3.7支持(尽管它的PyPI条目仍然只列出了3.6),并修复了与E704相关的多个bug,比如,但我无法从快速扫描中找到具体的相关更改


不幸的是,由于flake8实际上还没有使用2.4.0进行测试,因此以这种方式进行修复(无论是强制安装不兼容的版本,还是从GitLab安装最新版本)可能会破坏其他功能

在这种情况下,唯一的实物期权是:

  • 不管怎么做,交叉你的手指
  • 手动运行pycodestyle,而不是通过flake8。(这意味着它的输出不会与其他工具逐个文件合并,它不会理解flake8添加的更强大的
    noqa
    标志,等等。)
  • 等待flake8达到正式支持pycodestyle 2.4.0的里程碑(或帮助他们实现)
  • 在pycodestyle repo中找到所需的修复程序,并将其向后移植到2.3.1
  • 禁用此警告(每行、每文件或全局)

您是否至少在Python 3.6上运行flake8?你需要,是的。Python3.7。听起来不像。听起来您实际上使用的是较低的版本,但没有意识到这一点。您确定在运行
flake8--version
时获得了python 3.7.X吗?我尝试在3.6中使用您的代码运行flake8,但出现了相同的错误,但切换到3.7后修复了此错误。
哪个flake8
/Users/brianbruggeman/.virtualenvs/recs api/bin/flake8
今天发布的flake8 3.6.0对此进行了快速更新,修复了此问题
    E704 multiple statements on one line (def)