Каков наилучший способ разбить строку кода в строковом формате на основе стандартов PEP8 и методов разрыва строк в Python? - PullRequest
0 голосов
/ 15 мая 2019

Наш новый технический директор хочет, чтобы мы отформатировали весь наш код, используя стандарты PEP8.Это включает в себя код Python со строками длиной не более 80 и не более 100 символов.У меня есть эта расширенная строка кода.Любые советы о том, как я могу разбить эту строку на 2-3 чистых, читаемых строки.

    # Identify if Authenticated 
    identify = ''
    if is_authenticated:
        fullname = request.user.full_name if 'full_name' in request.user else ''
        identify = 'mixpanel.identify("{} ");\nmixpanel.people.set({{"$email": {email}, "$name": {name}}})'.format(email=request.user.email, name=fullname)

Я уже пробовал разрыв строки, такой как:

    # Identify if Authenticated 
    identify = ''
    if is_authenticated:
        fullname = request.user.full_name if 'full_name' in request.user else ''
        identify = 'mixpanel.identify("{} ");\n'
        'mixpanel.people.set({{"$email": {email}, "$name": {name}}})'.format(email=request.user.email, name=fullname)

... но linting вернул ошибку (красный волнистый) нераспознанного формата, когда я ссылался на другой SOпост, говорящий, что это хорошо.

Я также подумал о том, чтобы положить все, начиная с .format.

Любые советы?

Ответы [ 2 ]

3 голосов
/ 15 мая 2019

Я бы воспользовался скобками:

    identify = ''
    if is_authenticated:
        fullname = request.user.full_name if 'full_name' in request.user else ''
        form = (
            'mixpanel.identify("{} ");\n'
            'mixpanel.people.set({{"$email": {email}, "$name": {name}}})'
        )
        identify = form.format(email=request.user.email, name=fullname)
0 голосов
/ 15 мая 2019

В итоге я получу тройную кавычку, переданную textwrap.dedent, и формат вызова для результата.textwrap.dedent("""\ столько строк, сколько нужно """).format(...).Продолжение строки в открытии тройки - подавление пустой первой строки.Мне также нравится использовать это в строках документации.

...