将长函数调用分成多行的正确方法
我有一个很长的函数,下面是它的代码:
hash_correct = hashlib.md5(salt + password)).digest().encode("base64")
我想把它分成两行,但不太确定在Python中该怎么做?
谢谢。
2 个回答
3
我更喜欢Charles Merram的回答,但我觉得这个方法虽然能用,但看起来很丑,不推荐大家这样做。因为“.”在编程中是一个分隔符,所以下面的写法是可以工作的:
>>> '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]'
不过最好不要这样做。
21
代码规范中限制行长度的规定,部分是为了让代码更容易阅读。在你提到的链式方法调用的情况下,意思可能不太清楚。你应该为中间的值选择一些临时变量名,这样阅读代码的人就能更轻松地理解这个链条。
一个例子可能是:
safe_md5 = hashlib.md5(salt + password)
crypto_hash = safe_md5.digest()
hash_correct = crypto_hash.encode('base64')
这样可以帮助读者更好地理解代码。性能损失非常小,而且增加的代码都是有目的的。