带有注释的长参数的Python PEP8格式

时间:2017-06-28 06:33:25

标签: python lint pep8

我有几个带日志的函数,带注释的参数如下:

def myfunction(values: Optional[List[str]],
               keywords: Dict[str, Tuple[str, int]],
               default_value: Optional[str]=None
               ) -> Dict[str, str]:
    ...

PEP8没有具体说明这一点,但上面的格式是我对传统的最佳估计。然而,短信表明不然。 Flake8对此很满意,如果我改变它就会抱怨,pylint希望它在默认参数中用空格格式化,括号排成一行:

def myfunction(values: Optional[List[str]],
               keywords: Dict[str, Tuple[str, int]],
               default_value: Optional[str] = None
              ) -> Dict[str, str]:
    ...

因此,flake8和pylint在括号缩进上相互矛盾,并且pylint坚持=周围的间距,我很可能与PEP8相矛盾。

是否有任何明确的PEP8指南,我已经错过了?或者仅仅是pylint和flake8对无证案件有不同意见?关于=间距,这里的pylint是完全错误的,或者我错过了PEP8的一些例外。

1 个答案:

答案 0 :(得分:0)

我认为你通常可以这样格式化,使pep8和pylint感到高兴(虽然它不是很好)

def myfunction(
    values: Optional[List[str]],
    keywords: Dict[str, Tuple[str, int]],
    default_value: Optional[str] = None
    ) -> Dict[str, str]: