将__str__()返回的内容以字符串形式输出
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
one = Person('小红',20)
print(one)
运行结果:
如上所示,定义一个Person类,创建对象one后使用print输出对象实例时,默认打印对象的内存地址。
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def __str__(self):
return '姓名是{},年龄是{}'.format(self.name,self.age)
one = Person('小红',20)
print(one)
运行结果:
上述代码使用了__str__方法,当调用print()函数时,会找到实例对象one的__str__方法,输出__str__方法的返回值内容。
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def __str__(self):
return '姓名是{},年龄是{}'.format(self.name,self.age)
one = Person('小红',20)
words = str(one)
print(worlds,type(words))
运行结果:
使用str()函数触发__str__方法输出的内容与直接调用print()函数触发的结果看似相同,但是过程是不一样的。
- 使用print()函数触发:触发时,会自动寻找实例对象的方法,若没有则直接按照默认内容输出,有则输出__str__方法的返回值。
- 使用str()函数触发:如上述代码所示,使用str()触发时,worlds类型是str,是一个字符串,打印输出的是一个字符串words。