some python classes have some operators such __gt__ or __lt__, They have been named from fortran language.
What's difference between above operators and < or > ?
Is't better to use __operators__ than < or > ?
该__gt__方法是的实现>,其他比较运算符也具有类似的方法:
object.__lt__(self, other)
object.__le__(self, other)
object.__eq__(self, other)
object.__ne__(self, other)
object.__gt__(self, other)
object.__ge__(self, other)这些就是所谓的“丰富比较”方法。运算符和方法名称之间的对应关系如下:
x<y调用x.__lt__(y),x<=y调用x.__le__(y),x==y调用x.__eq__(y),x!=y调用x.__ne__(y),x>y调用x.__gt__(y)和x>=y调用x.__ge__(y)。
通常一个>在代码中使用运算符等。但是您需要使用__gt__和类似的在自己的类上实现功能。
您(几乎总是)不应__gt__在代码中直接使用这些方法,因为数据模型还定义了一些在这些方法之外处理的特殊情况。
例如,如果一个操作数未实现比较,则它会与交换的运算符进行反向比较:
>>> (1).__gt__(2.5)
NotImplemented
>>> (2.5).__lt__(1)
False
>>> 1 > 2.5
False
Run Code Online (Sandbox Code Playgroud)
如果您需要“功能比较”,则应使用以下operator模块:
>>> from operator import gt
>>> gt(1, 2.5)
False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |