一、__str__方法简介
__str__
是Python中的一个特殊方法,用于创建一个对象的字符串表示形式。当我们打印一个对象时,实际上是调用该对象的__str__
方法,将其返回值输出到控制台。这个方法可以让我们自定义一个对象的字符串输出形式,方便调试和理解。
二、__str__方法的使用
在创建一个类时,我们可以添加__str__
方法来自定义它的字符串输出形式,代码如下:
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"My name is {self.name}, I am {self.age} years old."
这里我们创建了一个名为MyClass
的类,它有两个属性:name
和age
,以及一个__str__
方法,该方法返回一个字符串来描述我们的这个实例。
在实例化这个类后,我们可以直接使用print()
函数来输出这个类的实例,代码如下:
mc = MyClass("Alice", 23)
print(mc)
输出结果为:
My name is Alice, I am 23 years old.
从结果可以看出,我们成功地定义了这个类的字符串输出形式。
三、__str__方法的实例
1.自定义一个日期格式的类
在Python中,日期是一个常用的类,它的默认字符串输出形式为:YYYY-MM-DD
的格式。我们可以通过__str__
方法来自定义这个格式,代码如下:
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def __str__(self):
return f"{self.year}/{self.month}/{self.day}"
在实例化这个类后,我们可以按照自定义的日期格式来输出这个类的实例,代码如下:
d = Date(2022, 11, 11)
print(d)
输出结果为:
2022/11/11
2.自定义一个复数的类
在Python中,复数是一个常用的数据类型,它的默认字符串输出形式为:a+bj
的格式。我们可以通过__str__
方法来自定义这个格式,代码如下:
class Complex:
def __init__(self, real, imag):
self.real = real
self.imag = imag
def __str__(self):
return f"{self.real}+{self.imag}j"
在实例化这个类后,我们可以按照自定义的复数格式来输出这个类的实例,代码如下:
c = Complex(3, 4)
print(c)
输出结果为:
3+4j
3.自定义一个身份证号码的类
在中国,身份证号码是一个常用的标识,它的默认字符串输出形式为:XXXXXXXXXXXXXXXXX
的格式。我们可以通过__str__
方法来自定义这个格式,代码如下:
class IDCard:
def __init__(self, id_num):
self.id_num = id_num
def __str__(self):
return self.id_num[:6] + "********" + self.id_num[-4:]
在实例化这个类后,我们可以按照自定义的身份证号码格式来输出这个类的实例,代码如下:
idc = IDCard("110101199001010011")
print(idc)
输出结果为:
110101********0011
四、总结
通过__str__
方法的使用,我们可以自定义一个类的字符串输出形式,使得输出的内容更加清晰明了,方便我们进行调试和理解。