【发布时间】:2020-02-23 12:30:40
【问题描述】:
在编写代码时,我通常会像这样写很长的行,但我已经忘记了发生了什么,而且我发现这样的代码很难阅读。我必须解构并运行每个部分以查看实际情况。
但是,当我自学资源时,我说高级用户会使用一行代码,而初学者会使用很多代码。
所以我的问题真的是:
保留这一行(保持原样)会更好吗?如果是这样,如何将其格式化为 79 个字符以下(根据 PEP8)?
或者最好把它分解成小块,以便以后更容易回来(或者奇怪的是我无法理解它)?
top_products_for_customer_group = stock_trans[(stock_trans["SA_DACCNT"].isin(customer_seg_df[self.customer_seg_df["Label"] == customer_seg_df[self.customer_seg_df["SA_DACCNT"] == acc]["Label"].iloc[0]]["SA_DACCNT"]))].groupby(["SA_PRODUCT", "SA_DESC"]).count()["SA_ACCOUNT"].reset_index().sort_values("SA_ACCOUNT", ascending=False)
【问题讨论】:
-
“高级用户会使用一行代码,而初学者会使用很多代码”我认为这不是真的。可能是这样的情况,高级用户需要一行代码,而初学者需要几行代码,但这并不意味着将多行压缩成一行。这更像是一种个人风格,但我会说任何可以自然命名的名称。例如,将您在
ser.isin(collection))中引用的任何集合保存到变量中。 -
它被认为是糟糕的风格,至少对于那些关心编写可读、可维护代码的人来说是这样。理想情况下,您的代码是自记录的
-
我同意@ayhan,我想补充一点,不要(太)害羞添加一个功能。我不知道上下文,但我有一种感觉,很多代码在其他地方被重用,只是为了有一个单行,而它可以被封装在一个名称可能是的函数中不言自明。
标签: python pandas formatting pep8