# \_\_str\_\_()方法
~~~
class Car(object):
"""定义了一个车类,可以启动和炸街"""
def __init__(self, name, max_speed, vehicle_length):
""" __init__() 方法,用来做变量初始化 或 赋值 操作"""
self.name = name # 车名
self.max_speed = max_speed # 最高时速
self.vehicle_length = vehicle_length # 车长
def start(self):
"""实例方法"""
print("正在启动")
def fried_street(self):
"""实例方法"""
print("开始炸街")
def info(self):
"""在类的实例方法中,通过self获取该对象的属性"""
print("本车名为:{} 最高时速:{} km/h".format(self.name, self.max_speed))
print("本车名为:{} 车长:{} mm".format(self.name, self.vehicle_length))
def __str__(self):
return "调用__str__方法 > 本车名为:{} 车长:{} mm".format(self.name, self.vehicle_length)
# 实例化保时捷911对象时,参数会传递到对象的__init__()方法里
porsche_911 = Car('保时捷911', 340, 4519)
jeep = Car('牧马人', 200, 5000)
# 如果没有__str__ 则默认打印 对象在内存的地址。
# 当类的实例化对象 拥有 __str__ 方法后,那么打印对象则打印 __str__ 的返回值
print(porsche_911)
print(jeep)
# 查看类的文档说明,也就是类的注释
print(Car.__doc__)
~~~
#### 说明:
* 在python中方法名如果是`__xxxx__()`的,那么就有特殊的功能,因此叫做“魔法”方法
* 当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了`__str__(self)`方法,那么就会打印从在这个方法中`return`的数据
* `__str__`方法通常返回一个字符串,作为这个对象的描述信息