Python常用魔术方法 (学习笔记)
一、魔术方法是什么?
在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中常用魔术方法的使用,通过这些魔术方法,你可以控制对象的行为,使其更符合你的需求。
原文地址:https://blog.csdn.net/qq_48076747/article/details/143798111
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!