때문에 승인된다
- 는 대안에 비해, 정말 읽을 수 없습니다입니다.
- 대체 방법만큼 효율적이지 않습니다.
- 다른 유형이있는 경우 수동으로
str
을 호출해야합니다.
그리고 네, 정말 늙습니다. :-)
이론상 추가 문자열은 새로운 문자열을 생성합니다. 따라서 n
문자열을 추가한다고 가정하면 n-1
문자열을 만들어야하지만 최종 결과에만 관심이 있기 때문에이 문자열을 제외한 나머지 문자열은 모두 삭제됩니다. 문자열은 배열로 구현되므로 잠재적으로 많은 비용이 드는 (재 할당) 이점이 없습니다.
자리 표시자를 가진 문자열이있는 경우이 두 문자 사이에 +
과 str
이 없어도됩니다.하지만 파이썬은 최종 문자열의 길이를 계산하고 최종 문자열에 하나의 배열 만 할당 할 수 있습니다 모든 것을 삽입하십시오.
사실상 파이썬이 문자열이 중간인지 확인하고 일부 최적화를 수행하기 때문에 실제로 일어나지는 않습니다. 따라서 불필요한 배열을 만드는 것만 큼 나쁘지 않습니다. n-2
.
작은 문자열 및/또는 대화식 사용의 경우에도 차이점을 알지 못합니다. 그러나 다른 방법은 더 가독성이 있다는 장점이 있습니다.
대안이 될 수 (처음 두가 @MKemps에서 복사 대답) :
"Total score for {} is {}".format(name, score)
"Total score for %s is %s" % (name, score)
(도 구!) 이
"Total score for {name} is {score}".format(name=name, score=score)
f"Total score for {name} is {score}"
(아주 새로운 - 파이썬에 도입 삼.6)
특히 후자의 두 예제는 아무 것도 삽입하지 않고도 템플릿 문자열을 읽을 수 있음을 보여줍니다.
https://www.python.org/dev/peps/pep-3101/와 같은 새로운 pep이 도입되기 전에 새로운 (더 나은, 틀림없이) 문자열 서식 지정 방법을 도입했습니다. – Pythonista
Disapproved? 비추천 또는 오래된 것을 의미합니까? –
다음은 몇 가지 외부 문서입니다. https://pyformat.info –