魔术方法
1、__init__()方法,被称为构造方法,在创建类对象时,会自动执行,在创建类对象的时候,会将传入的参数自动传递给__init__()方法。
class Student:name = Noneage = Nonetel = Nonedef __init__(self,name,age,tel):self.name=nameself.age=ageself.tel = telprint("创建一个构造方法:"+name+", "+str(age)+", "+str(tel))
stu = Student("xiaoming",20,12345678901)
2、__str__字符串方法:将类对象转化为字符串
def __str__(self):return f"name:{self.name},age:{self.age}"
3、__lt__比较大小,(不支持等于)
class Student:name = Noneage = Nonetel = Nonedef __init__(self,name,age,tel):self.name=nameself.age=ageself.tel = telprint("创建一个构造方法:"+name+", "+str(age)+", "+str(tel))def __lt__(self, other):return self.age < other.age
stu1 = Student("xiaoming",20,12345678901)
stu2 = Student("xioahong",40,12345678901)
print(stu1>stu2)
4、__le__(self, other)比较大小,(支持包含等于,但不支持==)
class Student:name = Noneage = Nonetel = Nonedef __init__(self,name,age,tel):self.name=nameself.age=ageself.tel = telprint("创建一个构造方法:"+name+", "+str(age)+", "+str(tel))def __str__(self):return f"name:{self.name},age:{self.age}"def __le__(self, other):return self.age <= other.age
stu1 = Student("xiaoming",20,12345678901)
stu2 = Student("xioahong",40,12345678901)
print(stu1>=stu2)
print(stu1<=stu2)
5、__le__(self, other)比较是否相等
class Student:name = Noneage = Nonetel = Nonedef __init__(self,name,age,tel):self.name=nameself.age=ageself.tel = telprint("创建一个构造方法:"+name+", "+str(age)+", "+str(tel))def __str__(self):return f"name:{self.name},age:{self.age}"def __eq__(self, other):return self.age <= other.age
stu1 = Student("xiaoming",40,12345678901)
stu2 = Student("xioahong",20,12345678901)
stu3 = Student("nihao",20,12345678901)
print(stu1==stu2)
print(stu3 ==stu2)