• ru
  • Language: en
  • Documentation version: latest

Объединение литералов строк

В Python есть очень удобная функциональность — объединение литералов строк.

In [1]: s = ('Test' 'String')

In [2]: s
Out[2]: 'TestString'

In [3]: s = 'Test' 'String'

In [4]: s
Out[4]: 'TestString'

Можно даже переносить составляющие строки на разные строки, но только если они в скобках:

In [5]: s = ('Test'
   ...: 'String')

In [6]: s
Out[6]: 'TestString'

Этим очень удобно пользоваться в регулярных выражениях:

regex = ('(\S+) +(\S+) +'
         '\w+ +\w+ +'
         '(up|down|administratively down) +'
         '(\w+)')

Так регулярное выражение можно разбивать на части и его будет проще понять. Плюс можно добавлять поясняющие комментарии в строках.

regex = ('(\S+) +(\S+) +' # interface and IP
         '\w+ +\w+ +'
         '(up|down|administratively down) +' # Status
         '(\w+)') # Protocol

Также этим приемом удобно пользоваться, когда надо написать длинное сообщение:

In [7]: message = ('При выполнении команды "{}" '
   ...: 'возникла такая ошибка "{}".\n'
   ...: 'Исключить эту команду из списка? [y/n]')

In [8]: message
Out[8]: 'При выполнении команды "{}" возникла такая ошибка "{}".\nИсключить эту команду из списка? [y/n]'