python 自定义对象的__format__ 怎么用
时间: 2024-10-19 10:02:28 浏览: 4
在 Python 中,`__format__` 方法是一个特殊的方法,用于控制对象在字符串格式化操作(如 `str.format()` 或者 `%` 操作符)中的表示形式。当你想要自定义一个类的实例如何转换成字符串时,可以覆盖这个方法。
当需要对类的属性进行格式化输出,例如日期时间、数字格式化等,`__format__(format_spec)` 方法会被自动调用,其中 `format_spec` 参数是你传递给 `.format()` 或 `%` 的格式字符串。你可以根据这个字符串来定制输出的内容、精度、填充方式等。
下面是一个简单的例子:
```python
class CustomObject:
def __init__(self, value):
self.value = value
def __format__(self, format_spec):
if format_spec == 'custom':
return f"Custom Object with value: {self.value} (formatted)"
else:
return str(self.value)
# 使用
obj = CustomObject(42)
print(obj) # 输出 "42"
print("{obj:custom}") # 输出 "Custom Object with value: 42 (formatted)"
```
在这个例子中,当我们传入 `'custom'` 作为 `format_spec`,就会触发自定义的格式化规则。
阅读全文