A algum tempo venho explorando a biblioteca padrão do Python e nos últimos dias tenho aprendido muitas coisas e usado também muitas coisas.
Suponhamos que você tem uma mensagem “quase que padrão” para aprensentar algo, um erro por exemplo. Mas algo pode mudar nessa mensagem, seja o número do erro ou algumas palavras. Algo como:
Ooops! Ocorreu um erro no arquivo parser.py. [Code erro: 10] Infos: https://doc.mylib.hi/?error=10
Pensa que você precisa apenas mudar o nome do arquivo, código de erro e a URL para informações (o infos).
Um dos jeitos de resolver isso é usar a classe Template que está na biblioteca de strings essa classe nada mais faz do que substítuir valores recebendo como parâmetro um dicionário. Exemplo:
import string e = '''Ooops! Ocorreu um erro no arquivo $file_error. [Code erro: $error_code] Infos: https://doc.mylib.hi/?error=$error_code ''' d = { 'file_error': 'parser.py', 'error_code': '10' } template = string.Template(e) sub_render_template = template.substitute(d) print(sub_render_template)
Em $ fica os valores que serão substituidos pela dicionário, e os valores chave do dicinionário precisam ter o menos nome, só que sem o $.
Esse é um dos jeitos de resolver um problema. Poderia ter usado format, mas perceba que se isso ficar maior será um pouco mais complicado dar manutenção no futuro.
Fontes
- https://docs.python.org/2/library/string.html#template-strings
Este texto foi originalmente publicado no Medium e posteriormente migrado para este site.