시작입니다. 더 긴 문자열을 사용하는 코드 외부에서 더 긴 문자열을 정의하는 것은 나쁜 습관이 아닙니다. 데이터와 동작을 분리하는 방법입니다. 첫 번째 옵션은 문자열 리터럴을 서로 인접하게하여 암시 적으로 결합하는 것입니다.
("This is the first line of my text, "
"which will be joined to a second.")
또는 줄 끝 연속으로 사용하면 조금 더 깨지기 쉽습니다.
"This is the first line of my text, " \
"which will be joined to a second."
그러나 이것은하지 않습니다 :
"This is the first line of my text, " \
"which will be joined to a second."
차이점을 보시겠습니까? 아니? 글쎄 당신은 그것이 코드 일 때도하지 않을 것입니다.
암시 적 조인의 단점은 변수에서 가져온 문자열이 아닌 문자열 리터럴에서만 작동하므로 리팩토링 할 때 상황이 약간 더 커질 수 있다는 것입니다. 또한 결합 된 문자열의 서식 만 전체적으로 보간 할 수 있습니다.
또는 연결 연산자 ( +
)를 사용하여 명시 적으로 결합 할 수 있습니다 .
("This is the first line of my text, " +
"which will be joined to a second.")
zen of python이 말한 것처럼 명시 적은 암시 적보다 낫습니다. 그러나 이것은 하나가 아닌 세 개의 문자열을 생성하고 두 배의 메모리를 사용합니다. 선을 무시할시기를 알아야합니다. 거꾸로하면 각 행의 하위 문자열에 개별적으로 서식을 적용하거나 괄호 외부의 전체 로트에 서식을 적용 할 수 있습니다.
마지막으로 삼중 인용 문자열을 사용할 수 있습니다.
"""This is the first line of my text
which will be joined to a second."""
이것은 종종 내가 좋아하는 것이지만, 줄 바꿈과는 조금 다르지만 후속 줄의 선행 공백이 최종 문자열에 표시됩니다. 이스케이프 백 슬래시를 사용하여 줄 바꿈을 제거 할 수 있습니다.
"""This is the first line of my text \
which will be joined to a second."""
올바른 코드가 보이지 않는 공백으로 인해 잘못된 코드와 만 다르다는 점에서 위의 동일한 기술과 동일한 문제가 있습니다.
어느 것이 "가장 좋은지"는 특정 상황에 따라 다르지만 그 대답은 단순히 미적인 것이 아니라 미묘하게 다른 행동 중 하나입니다.