Это, в основном, ответ YatharhROCK, но немного более явный. Вы можете использовать необработанные строки или с двойным экранированием. Но почему?
Вам нужно, чтобы строковый литерал содержал действительный код Python, который при интерпретации является кодом, который вы хотите запустить / проверить. Они оба работают:
#!/usr/bin/env python
def split_raw(val, sep='\n'):
r"""Split a string on newlines (by default).
>>> split_raw('alpha\nbeta\ngamma')
['alpha', 'beta', 'gamma']
"""
return val.split(sep)
def split_esc(val, sep='\n'):
"""Split a string on newlines (by default).
>>> split_esc('alpha\\nbeta\\ngamma')
['alpha', 'beta', 'gamma']
"""
return val.split(sep)
import doctest
doctest.testmod()
Эффект от использования необработанных строк и эффект двойного экранирования (экранирования от косой черты) оставляют в строке два символа: слеш и n. Этот код передается интерпретатору Python, в котором «косая черта, затем n» означает «символ новой строки» внутри строкового литерала.
Используйте то, что вы предпочитаете.