¿Cómo puedo anular el formateador de cadena predeterminado en Python?

¿Hay alguna manera en que pueda cambiar el string.format() los Formatter python? Tengo una personalizada (desactiva el método check_unused_args ), pero esto requiere que use la syntax formatter.format("text") , en lugar de la syntax "text".format() , que prefiero.

¿Puedo cambiar el ‘formateador por defecto’ de alguna manera?

NOTA: Este es solo un proyecto pequeño, no tengo que preocuparme por desordenar las bibliotecas ni nada.

¿Hay alguna manera en que pueda cambiar el string.format () de los formateadores python?

No. Creo que lo racional es porque conduciría a un código realmente confuso. La gente esperaría que format_string.format(...) comporte de una manera, y se comportaría de manera diferente causando errores y tristeza general.


Sin embargo, puede indicar explícitamente a Python que desea utilizar un formateador diferente.

 class MyFormatter(string.Formatter): """This is my formatter which is better than the standard one.""" # customization here ... MyFormatter().format(format_string, *args, **kwargs) 

Al heredar de string.Formatter , string.Formatter acceso a toda la API del Formatter que puede hacer que tu formateador personalizado funcione mejor.

Si eso no fuera suficiente, puede personalizar la forma en que los objetos se formatean a sí mismos utilizando el método de gancho __format__ que llaman los objetos Formatter (incluido el estándar).