파이썬은 적어도 6 가지 방법으로 문자열을 포맷합니다 :
In [1]: world = "Earth"
# method 1a
In [2]: "Hello, %s" % world
Out[2]: 'Hello, Earth'
# method 1b
In [3]: "Hello, %(planet)s" % {"planet": world}
Out[3]: 'Hello, Earth'
# method 2a
In [4]: "Hello, {0}".format(world)
Out[4]: 'Hello, Earth'
# method 2b
In [5]: "Hello, {planet}".format(planet=world)
Out[5]: 'Hello, Earth'
# method 2c
In [6]: f"Hello, {world}"
Out[6]: 'Hello, Earth'
In [7]: from string import Template
# method 3
In [8]: Template("Hello, $planet").substitute(planet=world)
Out[8]: 'Hello, Earth'
다양한 방법에 대한 간략한 역사 :
printf
스타일 형식은 파이썬 초기부터 사용되었습니다.- 이
Template
클래스는 Python 2.4에서 도입되었습니다. - 이
format
메서드는 Python 2.6에서 도입되었습니다. f
-strings는 Python 3.6에서 도입되었습니다.
내 질문은 다음과 같습니다.
- 가요
printf
스타일의 서식이 사용되지 않거나 사용되지 않는 될 것? - 에서
Template class
의 인substitute
방법이 사용되지 않거나 사용되지 않는 될 것? (내가safe_substitute
이해하는대로 고유 한 기능을 제공하는 에 대해 말하는 것이 아닙니다. )
비슷한 질문과 중복되지 않는 이유 :
파이썬 문자열 형식 : % 대 .format — 방법 1과 2 만 처리하고 어느 것이 더 나은지 묻습니다. 내 질문은 Zen of Python에 비추어 사용 중단에 관한 것입니다.
문자열 형식화 옵션 : 장단점 — 질문의 방법 1a 및 1b, 답변의 1 및 2 만 처리하며 지원 중단에 대해서는 아무것도 처리하지 않습니다.
고급 문자열 형식화 vs 템플릿 문자열 — 대부분 방법 1과 3에 관한 것으로, 지원 중단을 다루지 않습니다.
문자열 형식화 표현식 (Python) — 원래의 '%'접근 방식이 더 이상 사용되지 않을 계획이라고 답변합니다 . 그러나 deprecated 예정 , 보류중인 deprecation 및 실제 deprecation 의 차이점은 무엇 입니까? 그리고
printf
-style 메서드는조차도 발생시키지 않습니다PendingDeprecationWarning
. 그래서 이것은 정말로 더 이상 사용되지 않을까요? 이 게시물도 꽤 오래되어 정보가 오래되었을 수 있습니다.
Formatter
수업 을 잊었다는 점을 지적해야 합니까?