더 많은 옵션. pylab이 활성화 된 Ipython에서 dedent는 이미 네임 스페이스에 있습니다. 확인했는데 matplotlib에서 가져 왔습니다. 또는 다음과 같이 가져올 수 있습니다.
from matplotlib.cbook import dedent
문서에서 그것은 텍스트 줄 바꿈에 해당하는 것보다 빠르며 ipython의 테스트에서는 실제로 빠른 테스트로 평균 3 배 빠릅니다. 또한 문자열을 구성하는 방법을 유연하게 할 수 있도록 선행 빈 줄을 버리는 이점이 있습니다.
"""
line 1 of string
line 2 of string
"""
"""\
line 1 of string
line 2 of string
"""
"""line 1 of string
line 2 of string
"""
이 세 가지 예에서 matplotlib dedent를 사용하면 동일한 합리적인 결과를 얻을 수 있습니다. textwrap dedent 함수에는 첫 번째 예제와 함께 빈 줄이 생깁니다.
명백한 단점은 textwrap이 표준 라이브러리에 있고 matplotlib가 외부 모듈이라는 것입니다.
일부 단점은 ... dedent 함수는 문자열을 정의하는 위치에서 코드를 더 읽기 쉽게 만들지 만 나중에 사용 가능한 형식으로 문자열을 가져 오려면 처리해야합니다. docstring에서는 대부분의 docstring 사용이 필요한 처리를 수행하므로 올바른 들여 쓰기를 사용해야합니다.
내 코드에 긴 문자열이 아닌 경우 긴 문자열을 둘러싸는 들여 쓰기에서 제외시키는 다음과 같은 추악한 코드가 있습니다. "아름다움이 못생긴 것보다 낫다"는 것은 분명 실패하지만, 다른 대안보다 더 단순하고 명백하다고 주장 할 수있다.
def example():
long_string = '''\
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip.\
'''
return long_string
print example()