Python基础:__str__()方法

目录

  • 一__str__()方法的作用
  • 二__str__()方法触发方式
    • 1、通过print()函数触发
    • 2、通过str()函数触发

一__str__()方法的作用

将__str__()返回的内容以字符串形式输出

二__str__()方法触发方式

1、通过print()函数触发

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__方法的返回值内容。

2、通过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。

你可能感兴趣的:(Python,python)