python设计类时怎么让类的对象有返回值
时间: 2024-03-25 22:36:08 浏览: 18
在Python中,类的对象默认是没有返回值的,但是可以通过在类中定义 `__str__()` 或 `__repr__()` 方法来返回对象的字符串表示形式。这两个方法都会在打印对象时自动调用,`__str__()` 方法一般用于打印对象的可读性较好的字符串表示形式,`__repr__()` 方法则用于打印对象的详细信息,一般用于调试。
举个例子,假设我们定义了一个名为 `Person` 的类,其中包含了 `name` 和 `age` 两个属性,我们可以通过如下方式定义 `__str__()` 和 `__repr__()` 方法:
```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})"
def __repr__(self):
return f"Person(name={self.name}, age={self.age})"
```
这样,当我们创建一个 `Person` 对象时,可以通过打印这个对象来获取其字符串表示形式,例如:
```python
person = Person("Tom", 20)
print(person)
# 输出:Person(name=Tom, age=20)
```
同时,我们也可以通过调用 `repr()` 函数来获取对象的详细信息:
```python
print(repr(person))
# 输出:Person(name=Tom, age=20)
```
需要注意的是,`__str__()` 和 `__repr__()` 方法都应该返回字符串类型的数据,否则会抛出类型错误异常。