classPerson:def__init__(self, name, age):
self.name = name
self.age = age
defdescription(self):returnf"My name is {self.name} and age is {self.age}"
Jack = Person("Jack",20)print(Jack.description())
二、魔术方法之字符串方法
1.介绍
__str()__称为字符串方法
当类对象被转换为字符串时,返回的内容
2.示例
# 没使用__str__方法classStudent:def__init__(self, name, age):
self.name = name
self.age = age
Jack = Student("Jack",20)print(Jack)# <__main__.Student object at 0x0000018792DE70E0>print(str(Jack))# <__main__.Student object at 0x0000018792DE70E0>
# 使用了__str__方法classStudent:def__init__(self, name, age):
self.name = name
self.age = age
def__str__(self):return self.name
Jack = Student("Jack",20)print(Jack)# <__main__.Student object at 0x0000018792DE70E0>print(str(Jack))# <__main__.Student object at 0x0000018792DE70E0>
三、魔术方法之小/大于符号比较方法
1.介绍
__lt__:小于符号比较方法
__gt__:大于符号比较方法
__le__:小于等于符号比较方法
__ge__:大于等于符号比较方法
实现__lt__方法后,可以实现小于符号和大于符号两种比较
2.示例
# 未实现比较方法classStudent:def__init__(self, name, age):
self.name = name
self.age = age
Jack = Student("Jack",20)
Peter = Student("Peter",30)print(Jack<Peter)# TypeError: '<' not supported between instances of 'Student' and 'Student'
# 实现比较方法classStudent:def__init__(self, name, age):
self.name = name
self.age = age
def__lt__(self, other):return self.age < other.age
Jack = Student("Jack",20)
Peter = Student("Peter",30)print(Jack<Peter)# True