Python的富比较方法__le__、__ge__之间的关联关系分析
2023-09-27 14:26:59 时间
Python的富比较方法包括__le__、__ge__
分别表示:小于等于、大于等于,对应的操作运算符为:“<=”、“>=”。那么是否象普通数字运算一样,这两个方法之间存在互反的关系呢?
Python没有对__le__、__ge__
这两个方法之间有什么强制关系,但建议__le__和__ge__为互反,开发者完全可以根据业务逻辑的需要自己定义。我们来进行分析验证:
- 当自定义类中两个方法都定义了时,“<=”、“>=”分别调用__le__和__ge__方法;
- 当自定义类中定义了__le__方法,未定义__ge__方法时,进行”>=”比较也是调用__le__方法,只是对调用值求反。案例:
>>> class Car():
def __init__(self,carname,oilcp100km, price):
self.carname,self.oilcp100km,self.price = carname,oilcp100km, price
def __le__(self,other):
print("execute __le__")
return self.price<=other.price
>>>
>>> car1,car2,car3,car4 = Car('爱丽舍',8,10),Car('凯美瑞',7,27),Car('爱丽舍',8,10),Car('途观',12,27)
>>>
>>> car1>=car2
execute __le__
False
>>> car1<=car2
execute __le__
True
>>>
- 当自定义类中定义了__ge__方法,未定义__le__方法时,进行”<=”比较也是调用__ge__方法,只是对调用值求反。案例:
>>> class Car():
def __init__(self,carname,oilcp100km, price):
self.carname,self.oilcp100km,self.price = carname,oilcp100km, price
def __ge__(self,other):
print("execute __ge__")
return self.price>=other.price
>>> car1,car2,car3,car4 = Car('爱丽舍',8,10),Car('凯美瑞',7,27),Car('爱丽舍',8,10),Car('途观',12,27)
>>> car1<=car2
execute __ge__
True
>>> car1>=car2
execute __ge__
False
>>>
通过以上案例,我们知道当__le__、__ge__方法都定义了时,“<=”、“>=”分别调用__le__和__ge__方法,当一个定义另一个未定义时,未定义的操作执行时会调用已经定义的方法求反。这个与__eq__和__ne__的关系还是有较大的不同,与__lt__和__gt__的关系一样。
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!
相关文章
- Python 的 sum():Pythonic 的求和方法
- Python做文本挖掘的情感极性分析(基于情感词典的方法)
- python
- windows Git Bash 无法运行python解决方法
- Python量化分析,计算KDJ (使用如下方法计算与国内财经软件显示一致)
- Python中将复杂json格式的数据提取value值的方法
- Python的应用领域有哪些?Python爬虫应用场景介绍
- python 获取当前运行的 class 和 方法的名字
- 【Python基础】字符串的基础操作:定义 || 统计 || 判断 || 查找和替换 || 大小写转换 || 文本对齐 || 去除空白字符 || 拆分和连接 || 字符串切片
- Python ffmpeg视频处理
- PyQt(Python+Qt)学习随笔:树型部件QTreeWidget中的项编辑方法editTriggers、editItem和openPersistentEditor作用及对比分析
- 第15.17节 PyQt(Python+Qt)入门学习:PyQt图形界面应用程序的事件捕获方法大全及对比分析
- PyQt(Python+Qt)学习随笔:设定toolButton弹出菜单的方法
- 第9.6节 Python使用read函数读取文件内容
- 第8.23节 Python中使用sort/sorted排序与“富比较”方法的关系分析
- Python的富比较方法__lt__、__gt__之间的关联关系分析
- 第8.6节 Python类中的__new__方法深入剖析:调用父类__new__方法参数的困惑
- 第7.14节 Python类中的实例方法详析
- 第6.2节 Python特色的动态可执行方法简介
- python编程(ply库)
- NumPy(Numeric Python)使用方法
- linux sublime python
- Python中使用pytesseract(tesseract OCR)报错(TesseractNotFoundError)解决方法
- Python pandas.DataFrame.to_stata函数方法的使用
- Python通过字典(dict)中value获取前n个最大的元素方法及示例代码
- python中两种方法实现二分法查找,细致分析二分法查找算法
- Python中fileinput模块使用方法
- python学习之多任务实现文件拷贝