将长函数调用放在多行上的正确方法

时间:2010-03-31 04:07:44

标签: python multiline

我的功能很长,如下所示:

hash_correct = hashlib.md5(salt + password)).digest().encode("base64")

我想将它分成两行,但我不确定在Python中执行此操作的正确方法?

感谢。

2 个答案:

答案 0 :(得分:20)

限制行长度的编码指南部分是为了使代码更具可读性。在你的链式方法调用的情况下,意义不明确。您应该为中间值选择一些临时变量名称,以便代码的读者可以轻松地理解链。

一个例子可能是:

safe_md5 = hashlib.md5(salt + password)
crypto_hash = safe_md5.digest()
hash_correct = crypto_hash.encode('base64')

这引导读者走上理解的花园之路。性能损失很小,附加代码全部用于目的。

答案 1 :(得分:3)

更喜欢查尔斯·梅拉姆(Charles Merram)的回答,但我认为值得注意的是工作但丑陋并且气馁。因为'。'是一个词汇delimiter,以下工作:

>>> 'abc def' . split()
['abc', 'def']
>>> 'abc def' . \
... split()
['abc', 'def']
>>> sys.version
'2.6.4 (r264:75706, Dec  7 2009, 18:45:15) \n[GCC 4.4.1]'

但不要这样做。