Python中定制类的比较运算方法
2017-08-16 22:39
330 查看
Python中的比较运算有几种:小于、小于等于、等于、大于等于、大于、不等于等。如果我们的数据对象具有明确的物理含义,比如说数值是带有数字与物理单位的字符串组合,那么进行大小比较的时候就可以做此定制。
下面针对6种比较方法中的一种来进行定制示范,选择小于判断来做尝试。写如下示范代码:
class myClass:
def __init__(self,value):
self.value = value
def __lt__(self,other):
return int(self.value[:-1]) <int(other.value[:-1])
a = myClass('12a')
b = myClass('20a')
print(a < b)
代码执行结果:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08/16$python compare.py
True
从上面看,myClass类的比较方法定制有效。上面例子中,对象的数值是带有单位的,其实是一个数值加单位的字符串。其中,单位就是’a’。如果进行小大比较,可以把单位剥离出去只进行数字的比较。于是,构建出上面的方法。
其实,其他的几种比较方法定制也与此类似。虽说不进行定制也能够完成我们要的功能,但是如果进行类似的定制我们可以获得可读性以及可维护性更好的软件。
下面针对6种比较方法中的一种来进行定制示范,选择小于判断来做尝试。写如下示范代码:
class myClass:
def __init__(self,value):
self.value = value
def __lt__(self,other):
return int(self.value[:-1]) <int(other.value[:-1])
a = myClass('12a')
b = myClass('20a')
print(a < b)
代码执行结果:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08/16$python compare.py
True
从上面看,myClass类的比较方法定制有效。上面例子中,对象的数值是带有单位的,其实是一个数值加单位的字符串。其中,单位就是’a’。如果进行小大比较,可以把单位剥离出去只进行数字的比较。于是,构建出上面的方法。
其实,其他的几种比较方法定制也与此类似。虽说不进行定制也能够完成我们要的功能,但是如果进行类似的定制我们可以获得可读性以及可维护性更好的软件。
相关文章推荐
- python pandas ---Series,DataFrame 创建方法,操作运算操作(赋值,sort,get,del,pop,insert,+,-,*,/)
- python中两种拷贝目录方法的比较
- Python 中的比较方法 is与==的比较
- 使用numba对Python运算加速的方法
- python 新式类学习随笔-定制类的特殊方法(1)
- Python对小数进行除法运算的正确方法示例
- python 7-5 如何让类支持比较操作lt/le/total_ordering可以简化此过程,实现lt eq 后,可以推测出<= >=方法
- 不同梯度下降方法实现逻辑回归性能比较(python)
- python 中 五种字典(dict)的遍历方法,实验法比较性能。
- python笔记6 - 序列,列表(生成,常用方法,运算,切片赋值),深拷贝和浅拷贝,列表推导式
- 在动态方法中的比较运算 (使用.net 中的动态方法编程备忘录9)
- Python 定制类 特殊方法
- Python中实现三目运算的方法
- python_如何让类支持比较运算?
- 通过Python模块filecmp 对文件比较的实现方法
- python比较2个xml内容的方法
- Python字符串比较忽略大小写的方法
- 字符串反转-基于Python的6种方法比较(最全总结版本!)
- Python 合并两个字典的各种方法以及效率的比较
- python获取字母在字母表对应位置的几种方法及性能对比较