Как я могу разбить строку очень длинных вложенных словарей? - PullRequest
0 голосов
/ 19 апреля 2020
if details['box'] == {} or details['box'][last_box_key].get('timeout', datetime.min) < datetime.now():

Я пытался заключить скобки в скобки, но, похоже, я не могу разорвать эту действительно длинную строку.

Ответы [ 2 ]

0 голосов
/ 19 апреля 2020

Используйте черный Python форматировщик кода (примечание: по умолчанию он форматирует на месте, то есть изменяет файл, используйте флаг --diff, чтобы он просто выводил изменения). Выполнение black test.py форматирует ваш код:

if (
    details["box"] == {}
    or details["box"][last_box_key].get("timeout", datetime.min) < datetime.now()
):

Добавив больше ключей, вы можете узнать, как черные разделят еще более длинную линию:

if (
    details["box"] == {}
    or details["box"][last_box_key][another_very_long_key][
        even_more_looooooong_key
    ].get("timeout", datetime.min)
    < datetime.now()
):
0 голосов
/ 19 апреля 2020

Вы можете разбить строку, используя обратную косую черту.

if details['box'] == {} or \
    details['box'][last_box_key].get('timeout', datetime.min) \
        < datetime.now():
...