python class __str__
时间: 2023-10-29 16:56:39 浏览: 191
在Python中,类中的`__str__`方法是一个特殊方法,用于自定义类的字符串表示形式。当我们调用`print`函数或使用`str()`函数来表示一个类的实例时,Python会自动调用`__str__`方法来获取该实例的字符串表示形式。
在示例1中的代码中,定义了一个名为`Friend`的类,该类具有一个`__init__`方法用于初始化实例的属性,以及一个`__str__`方法用于返回该实例的字符串表示形式。通过`str()`函数或`print`语句,可以调用`__str__`方法并打印出实例的字符串表示形式。
在示例2中的代码中,定义了一个名为`Friend`的类,该类具有一个`__init__`方法用于初始化实例的属性。由于没有定义`__str__`方法,因此在使用`str()`函数或`print`语句时,会打印出默认的字符串表示形式。
在示例3中的代码中,定义了一个名为`Field`的类,该类具有一个`__init__`方法用于初始化实例的属性。同样,没有定义`__str__`方法,因此在使用`str()`函数或`print`语句时,会打印出默认的字符串表示形式。
相关问题
python class __
在Python中,`__`前缀通常表示特殊方法或称为魔术方法,这些是Python为了提供一些特定的行为而自定义的方法名称。它们在类中不是常规成员,而是由解释器在某些关键时刻自动调用。例如:
1. `__init__(self[, ...])`: 类的构造函数,当创建新实例时会自动调用,用于初始化属性。
2. `__str__(self)`: 转换为字符串的方法,当你打印一个对象时,这个方法会被调用。
3. `__len__(self)`: 计算对象长度的方法,比如列表、元组等。
4. `__add__(self, other)`: 定义了两个对象相加的操作,如数字相加或序列连接。
使用双下划线开头的方法在Python内部有一些特殊的含义,避免直接在代码中使用它们作为普通变量名。如果需要覆盖这些默认行为,可以在类里声明并实现这些特殊方法。
python __str__
`__str__` 是 Python 内置的一个特殊方法,用于定义对象的字符串表示形式。当我们打印一个对象时,会自动调用该对象的 `__str__` 方法,返回一个字符串对象。具体来说,`__str__` 方法应该返回一个描述该对象的字符串,通常是一些可读性较好的信息,便于开发者理解该对象的属性和状态。
下面是一个简单的例子,定义了一个名为 `Person` 的类,并实现了 `__str__` 方法:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person(name={self.name}, age={self.age})"
```
在上面的代码中,我们定义了一个 `Person` 类,并在 `__init__` 方法中初始化了 `name` 和 `age` 两个属性。接着,我们实现了 `__str__` 方法,返回一个字符串,描述该对象的属性信息。
现在,我们可以创建一个 `Person` 对象,并打印它:
```python
p = Person("Alice", 25)
print(p)
```
输出结果为:
```
Person(name=Alice, age=25)
```
可以看到,我们成功地自定义了 `Person` 对象的字符串表示形式。
阅读全文