文章目录
- 一、魔术方法是什么?
- 二、使用步骤
- 1.__ str __(self):
- 2.__ lt__(self):
- 3. __ le __(self):
- 4. __ eq __(self):
- 总结
一、魔术方法是什么?
在Python中,魔术方法(也称为特殊方法或双下划线方法)是一类具有特殊用途的方法,它们的名字以双下划线(__)开头和结尾。这些方法允许对象自定义其行为,例如定义对象的创建、初始化、显示、比较等。以下是Python中一些常用的魔术方法及其用途:
二、使用步骤
1.__ str __(self):
原本我们直接打印stu1会是对象地址值,有了这个__str__()会直接返回我们键值对
代码如下(示例):
class Student:
name = None
age = None
gender = None
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def __str__(self):
return f'{self.name}, {self.age}, {self.gender}'
stu1 = Student('张三',22,'男')
# 输出
print(stu1) #如果没有魔术方法会打印: <__main__.Student object at 0x00000122F74551C0>
print(stu1) #有魔术方法: 张三, 22, 男
2.__ lt__(self):
这个是用于比较两个对象大于或者小于问题:用了这个__lt__方法就会自定义比较的值来判断两个对象是否相同
代码如下(示例):
class Student:
name = None
age = None
gender = None
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def __lt__(self, other):
return self.age < other.age
stu1 = Student('张三',18,'男')
stu2= Student("张安",22,"男")
print(stu1 > stu2) # 输出: False
3. __ le __(self):
这个是用于比较两个对象大于等于或者小于等于问题:用了这个__le__方法就会自定义比较的值来判断两个对象是否相同
class Student:
name = None
age = None
gender = None
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def __le__(self, other):
return self.age <= other.age
stu1 = Student('张三',18,'男')
stu2= Student("张安",22,"男")
print(stu1 >= stu2) # 输出 False
4. __ eq __(self):
这个是用于比较两个对象大于等于或者小于等于问题:用了这个__le__方法就会自定义比较的值来判断两个对象是否相同
class Student:
name = None
age = None
gender = None
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def __eq__(self, other):
return self.age == other.age
stu1 = Student('张三',18,'男')
stu2= Student("张安",22,"男")
print(stu1 == stu2) # 输出 False
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Python中常用魔术方法的使用,通过这些魔术方法,你可以控制对象的行为,使其更符合你的需求。