Python面向对象之魔术方法
__str__ 改变对象的字符串显示。可以理解为使用print函数打印一个对象时,会自动调用对象的__str__方法 class Student: def __init__(self, name, age): self.name = name self.age = age # 定义对象的字符串表示 def __str__(self): return self.name s1 = Student('张三', 24) print(s1) # 会调用s1的__str__方法 __repr__ 在python解释器环境下,会默认显示对象的repr表示。 >>> class Student: ... def __init__(self, name, age): ... self.name = name ... self.age = age ... def __repr__(self): ... return self.name ... >>> s1 = Student('张三', 24) >>> s1 张三 总结: str函数或者print函数调用的是obj.__str__() repr函数或者交互式解释器调用的是obj.__repr__() 注意: 如果__str__没有被定义,那么就会使用__repr__来代替输出。 __str__和__repr__方法的返回值都必须是字符串。 _