__format__
时间: 2023-08-25 08:17:44 浏览: 109
`__format__` 是一个在 Python 类中定义的特殊方法,用于自定义对象的格式化输出。它被 `format()` 函数和相关的字符串格式化操作调用。
当你使用类似于 `"{:format_spec}".format(obj)` 或 `f"{obj:format_spec}"` 的语法来格式化字符串时,`format()` 函数会查找对象(`obj`)的 `__format__` 方法,并将格式规范(`format_spec`)作为参数传递给该方法。
下面是一个简单的示例来说明如何定义和使用 `__format__` 方法:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __format__(self, format_spec):
if format_spec == 's':
return f"Person: {self.name}"
elif format_spec == 'd':
return str(self.age)
else:
return f"Person: {self.name}, {self.age} years old"
person = Person("Alice", 25)
print(format(person, "s")) # 输出: Person: Alice
print(format(person, "d")) # 输出: 25
print(format(person, "")) # 输出: Person: Alice, 25 years old
```
在上面的示例中,`Person` 类定义了一个 `__format__` 方法,根据传入的格式规范(`format_spec`),返回不同的格式化字符串。当我们使用 `format()` 函数来格式化对象时,可以通过传递不同的格式规范来获得不同的输出结果。
需要注意的是,`__format__` 方法的返回值应该是一个字符串,用于表示对象的格式化输出。你可以根据自己的需求在 `__format__` 方法中实现自定义的格式化逻辑。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)