Muitas formas de formatação de strings do Python - as mais antigas (vão ser) obsoletas?

O Python tem pelo menos seis maneiras de formatar uma string:

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'

Uma breve história dos diferentes métodos:

printfformatação em estilo já existe desde a infância de PythonsoTemplate classe foi introduzida no Python 2.4oformat método foi introduzido no Python 2.6f-strings foram introduzidas no Python 3.6

Minhas perguntas são:

Éprintfformatação em estilo obsoleta ou que vai ficar obsoleta?NoTemplate class, é osubstitute método depreciado ou vai ser preterido? (Eu não estou falando sobresafe_substituteque, no meu entender, oferece recursos únicos)

Perguntas semelhantes e por que acho que não são duplicatas:

Formatação de string do Python:% vs. .format - trata apenas os métodos 1 e 2 e pergunta qual é o melhor; minha pergunta é explicitamente sobre a depreciação à luz do Zen de Python

Opções de formatação de strings: prós e contras - trata apenas os métodos 1a e 1b na pergunta, 1 e 2 na resposta, e também nada sobre a depreciação

formatação avançada de string versus strings de modelo - principalmente sobre os métodos 1 e 3, e não aborda a depreciação

Expressões de formatação de string (Python) - resposta menciona quea abordagem original '%' está planejada para ser preterida. Mas qual a diferença entreplanejado para ser preterido, pendência suspensa e realdeprecação? E aprintfmétodo de estilo não aumenta mesmo umPendingDeprecationWarning, isso é realmente vai ser preterido? Este post também é bastante antigo, então a informação pode estar desatualizada.

Veja também PEP 502: Interpolação de Cadeias - Discussão Extendida

questionAnswers(5)

yourAnswerToTheQuestion