长的返回类型提示和pep8

9

我有一个函数,在运行pycodestyle时会引发E501 行过长 (86 > 79 个字符)的警告。

def my_function(arg1: list = None) -> Tuple[pd.DataFrame, pd.DataFrame, pd.Dataframe]:
    # do stuff
    return df1, df2, df3

什么是格式化长的返回类型提示的最佳解决方案(最好不改变参数的格式)?例如:
def my_function(arg1: list = None) -> Tuple[pd.DataFrame,
                                            pd.DataFrame,
                                            pd.Dataframe]:

这是一个很好的问题,我自己也一直在思考。我觉得这应该由Python语言开发团队或编写Python风格PEP的人来解决。 - Josie Thompson
5个回答

4
你可以尝试使用 \
def my_function(arg1: list = None)\
        -> Tuple[pd.DataFrame, pd.DataFrame, pd.Dataframe]:

2

你可以使用black来格式化代码,这将自动为您进行格式化。请注意,要使black和pycodestyle的行长度相同。


5
也许你可以分享一下像black这样的软件包提供的解决方案?我知道有些软件包可以自动化 pep8,但我更想了解在这种情况下最好/最符合Python风格的格式是什么,因为有多种可能的解决方案。 - Seraf Fej

1

将闭合括号和返回类型提示放在下一行:

def my_function(arg1: list = None
    ) -> Tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame]:
    # do stuff
    return df1, df2, df3

0
这是black会产生的结果:
def my_function(
    arg1: list = None,
) -> Tuple[pd.DataFrame, pd.DataFrame, pd.Dataframe]:
    # do stuff
    return df1, df2, df3

我通过将您的输入粘贴到一个名为long_typehint.py的文件中,并运行以下命令来获得这个输出:
$ black --line-length 79 long_typehint.py

0

使用类型别名。

Dataframes = Tuple[pd.DataFrame, pd.DataFrame, pd.Dataframe]

def my_function(arg1: list = None) -> Dataframes:
# do stuff
return df1, df2, df3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接