Правильный способ ввода длинных вызовов функций на несколько строк
У меня длинная функция, как показано ниже:
hash_correct = hashlib.md5(salt + password)).digest().encode("base64")
Я хотел бы разбить его на две строки, но я не уверен в правильном способе сделать это в Python?
Спасибо.
Ответы
Ответ 1
Руководства по кодированию, ограничивающие длину строк, частично, чтобы сделать код более читаемым. В вашем случае прикомандированных вызовов метода значение не ясно. Вы должны выбрать некоторые временные имена переменных для промежуточных значений, чтобы читатель кода мог легко понять цепочку.
Одним из примеров может быть:
safe_md5 = hashlib.md5(salt + password)
crypto_hash = safe_md5.digest()
hash_correct = crypto_hash.encode('base64')
Это приводит читателя к садовому пути к пониманию. Очень мало потеряно в производительности, и дополнительный код добавлен для цели.
Ответ 2
Предпочитаю, что Чарльз Меррам отвечает, но я думал, что это стоит того, чтобы работать, но некрасиво и быть обескураженным. Потому как '.' является лексическим 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]'
но не делайте этого.