有什么方法可以改变Formatter
python的string.format()
的用法?我有一个自定义的(禁用check_unused_args
方法),但这需要我使用formatter.format("text")
语法,而不是我喜欢的"text".format()
语法。如何覆盖python中的默认字符串格式化程序?
我可以换出默认格式化程序吗?
注意:这只是一个小项目,我不需要担心搞乱图书馆或任何东西。
有什么方法可以改变Formatter
python的string.format()
的用法?我有一个自定义的(禁用check_unused_args
方法),但这需要我使用formatter.format("text")
语法,而不是我喜欢的"text".format()
语法。如何覆盖python中的默认字符串格式化程序?
我可以换出默认格式化程序吗?
注意:这只是一个小项目,我不需要担心搞乱图书馆或任何东西。
有什么方法可以改变格式器python的string.format()使用?
不,我认为理性是因为它会导致真正令人困惑的代码。人们希望format_string.format(...)
表现出一种行为方式,它会表现不同,导致错误和普遍的悲伤。
您但是可以,明确告诉您要使用不同的格式蟒蛇。
class MyFormatter(string.Formatter):
"""This is my formatter which is better than the standard one."""
# customization here ...
MyFormatter().format(format_string, *args, **kwargs)
通过从string.Formatter
继承,您将获得对整个Formatter
API,它可以使您的自定义格式的工作更好的访问。
如果这还不够,您可以使用Formatter
对象调用的__format__
挂钩方法(包括标准挂钩方法)自定义对象的格式。
Aww,太糟糕了。尽管我看到了推理。这是我一直在使用的解决方案。 – AlphaModder
与其他语言(例如Ruby)不同,Python通常不允许您修改内置类型(例如字符串)。我个人认为这是一件好事 - 它迫使你明确。但是,其他人当然可能不同意。 :-) – mgilson
您可以从内置函数中派生自己的字符串类,并提供自己的'format'方法。 – martineau
另请参阅:https://pyformat.info/ – dreftymac