目录
一.几种常用的类内置方法
魔术方法
_ _str_ _字符串方法
_ _lt_ _小于符号比较方法
_ _le_ _小于等于比较符号方法
_ _eq_ _等于比较符号
一.几种常用的类内置方法
魔术方法
上文提到的_ _init_ _构造方法,是Python类内置的方法之一。
这些内置的类方法,各自有各自特殊的功能,这些内置方法我们称之为:魔术方法
魔术方法非常多
我们学习几个常见的即可
_ _str_ _字符串方法
演示
class Student:
def __init__(self,name,age,tel):
self.name=name
self.age=age
self.tel=tel
print("创建了一个类")
stu=Student("张三",12,"2143235")
print(stu)
print(str(stu))
结果是
如上图
当类对象需要被转换为字符串之时,会输出如上结果(内存地址)
内存地址没有多大作用,我们可以通过_ _str_ _方法,控制类转换为字符串的行为。
class Student:
def __init__(self,name,age,tel):
self.name=name
self.age=age
self.tel=tel
print("创建了一个类")
def __str__(self):
return f"Student类对象,name={self.name},age={self.age},tel={self.tel}"
stu=Student("张三",12,"2143235")
print(stu)
print(str(stu))
结果是
_ _lt_ _小于符号比较方法
演示
class Student:
def __init__(self,name,age,tel):
self.name=name
self.age=age
self.tel=tel
print("创建了一个类")
def __lt__(self, other):
return self.age<other.age
stu1=Student("张三",12,"2143235")
stu2=Student("李四",22,"1244235")
print(stu1<stu2)
print(stu1>stu2)
结果是
_ _le_ _小于等于比较符号方法
演示
class Student:
def __init__(self,name,age,tel):
self.name=name
self.age=age
self.tel=tel
print("创建了一个类")
def __le__(self, other):
return self.age<=other.age
stu1=Student("张三",12,"2143235")
stu2=Student("李四",22,"1244235")
print(stu1<=stu2)
print(stu1>=stu2)
结果是
_ _eq_ _等于比较符号
上图中,输出的是FALSE,这是因为如果没有实现eq这个魔术方法,那么等等符号它就默认比较内存地址
演示
class Student:
def __init__(self,name,age,tel):
self.name=name
self.age=age
self.tel=tel
print("创建了一个类")
def __eq__(self, other):
return self.age==other.age
stu1=Student("张三",22,"2143235")
stu2=Student("李四",22,"1244235")
print(stu1==stu2)
print(stu1)
print(stu2)
结果是