类内置方法:(魔术方法)
__init__ :构造方法
__str__ :字符串方法
__lt__ :大于,小于符号比较
__le__ :小于等于,大于等于符号比较
__eq__ :==符号比较
- class Student:
- def __init__(self, name, age):
- self.name = name
- self.age = age
-
- # __str__字符串方法
- def __str__(self):
- return f"Student类对象,name:{self.name},age:{self.age}"
- # return self.name, self.age # 不能这样写,因为__str__方法应该返回一个字符串
-
- # __lt__ 大于,小于符号比较
- def __lt__(self, other):
- return self.age > other.age # other:另一个类对象
-
- # __le__: 小于等于, 大于等于符号比较
- def __le__(self, other):
- return self.age >= other.age
-
- # __eq__ :==符号比较
- def __eq__(self, other):
- return self.age == other.age
-
-
- stu1 = Student("😊", 18)
- stu2 = Student("😭", 20)
-
- # __str__字符串方法
- print(stu1) # 不加__str__方法:<__main__.Student object at 0x100a52890> 加__str__方法:Student类对象,name:😊,age:18
- print(str(stu1)) # 不加__str__方法:<__main__.Student object at 0x100a52890> 加__str__方法:Student类对象,name:😊,age:18
-
- # __lt__ 大于,小于符号比较
- print(stu1 > stu2) # 不加__lt__方法:报错 加__lt__方法:True
-
- # __le__: 小于等于, 大于等于符号比较
- print(stu1 >= stu2) # 不加__le__方法:报错 加__le__方法:True
-
- # __eq__ :==符号比较
- print(stu1 == stu2) # 不加__eq__方法:False 内存地址比较 加__eq__方法:False