시작했습니다. 긴 문자열을 사용하는 코드 외부에서 긴 문자열을 정의하는 것은 나쁜 습관이 아닙니다. 그것은 데이터와 행동을 분리하는 방법입니다. 첫 번째 옵션은 서로에 인접하여 암시 적으로 함께 문자열 리터럴에 가입하는 것입니다
"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.")
명시 적, 암시 적보다 낫다,하지만이 세 가지 문자열 대신 중 하나를 생성하고, 두 번 사용 많은 기억이 있습니다 : 당신이 작성한 두 개와 함께 합쳐진 두 개가 있습니다. 그래서 선 (禅)을 언제 무시해야 하는지를 알아야합니다. 단점은 각 줄에 별도로 하위 문자열을 지정하거나 괄호 외부에서 전체 롯트에 서식을 적용 할 수 있다는 것입니다. 이것은 줄 바꿈 및 후속 행에 선행 공백이 최종 문자열에 표시됩니다으로 그 동작이 약간 다릅니다하지만, 종종 내가 좋아하는
"""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."""
올바른 코드가 보이지 않는 공백으로 만 다른 점은 올바른 코드와 위의 동일한 기술과 동일한 문제입니다.
어느 것이 "최선"인지는 특정 상황에 따라 다르지만 그 대답은 단순히 미학적 인 것이 아니라 미묘하게 다른 행동 중 하나입니다.
좋은 옵션처럼 보입니다. 그것에 대해 싫어하는 점은 무엇입니까? –
조금 주관적이지 않습니까? :) –
관련 : http://stackoverflow.com/questions/1940710/syntax-quirks-or-why-is-that-valid-python (파이썬에서 문자열 연결) – jldupont