魔术方法:
init(两个下划线)
class student:
name = None #这里可以不写
age = None
tel = None
def __init__(self,name,age,tel):
self.name=name
self.age=age
self.tel=tel
stu = student("周杰伦","31","132332")
print(f"{stu.name},{stu.age},{stu.tel}")
上面不写,下面self.name相当于定义加赋值,写了就是赋值
str
class student:
def __init__(self,name,age):
self.name = name
self.age = age
def __str__ ( self ):#不加这个,打印地址
return f"student类对象,name:{self.name},age:{self.age}"
stu = student("zhou",31)
print(stu)
print(str(stu))
lt(小于)
class student:
def __init__(self,name,age):
self.name = name
self.age = age
def __lt__(self, other):#返回True或False
return self.age < other.age
stu = student("zhou",31)
stu1 = student("lin",29)
print(stu < stu1)
le(小于等于)
class student:
def __init__(self,name,age):
self.name = name
self.age = age
def __le__(self, other):#返回True或False
return self.age <= other.age
stu = student("zhou",31)
stu1 = student("lin",29)
print(stu <= stu1)
eq(不写的话默认比较地址)
class student:
def __init__(self,name,age):
self.name = name
self.age = age
def __eq__(self, other):#返回True或False
return self.age == other.age
stu = student("zhou",30)
stu1 = student("lin",20)
print(stu == stu1)