长返回类型提示和pep8

问题描述 投票:0回答:5

我有一个函数,在运行

E501 line too long (86 > 79 characters)
时会引发
pycodestyle
警告。

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-3.x types pep8
5个回答
4
投票

你可以试试

\
:

def my_function(arg1: list = None)\
        -> Tuple[pd.DataFrame, pd.DataFrame, pd.Dataframe]:

2
投票

你用黑色怎么样?这将自动为您格式化代码。请记住黑色和 pycodestyle 的行长相同


1
投票

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

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

1
投票

这就是 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

1
投票

使用类型别名

type DataFrames = Tuple[pd.DataFrame, pd.DataFrame, pd.Dataframe]

def my_function(arg1: list = None) -> DataFrames:
    # do stuff
    return df1, df2, df3
© www.soinside.com 2019 - 2024. All rights reserved.