zoukankan      html  css  js  c++  java
  • Python rich comparisons 自定义对象比较过程和返回值

        Classes wishing to support the rich comparison mechanisms must add
        one or more of the following new special methods:
    
                 def __lt__(self, other):
                    ...
                 def __le__(self, other):
                    ...
                 def __gt__(self, other):
                    ...
                 def __ge__(self, other):
                    ...
                 def __eq__(self, other):
                    ...
                 def __ne__(self, other):
                    ...
    
        Each of these is called when the class instance is the on the
        left-hand-side of the corresponding operators (<, <=, >, >=, ==,
        and != or <>). The argument other is set to the object on the
        right side of the operator. The return value of these methods is
        up to the class implementor (after all, that's the entire point of
        the proposal).

    来自:http://www.python.org/dev/peps/pep-0207/

    import operator
    
    class iint(int):
        def __init__(self,n):
            int.__init__(n)
            self.v=n
        def __lt__(self,otr):
            if operator.lt(self.v,otr):
                print '%s is less than %s' %(self.v,otr)
                return 10000
            print '%s is not less than %s' %(self.v,otr)
            return -10000
    
    x=iint(1)
    y=iint(2)
    print x<y
    print y<x

    结果:

    >>> 
    1 is less than 2
    10000
    2 is not less than 1
    -10000
  • 相关阅读:
    对象拷贝-深拷贝
    eclipse安装桌面快捷方式
    ajax 分页
    单例模式
    过滤器
    ajax参数详解
    json
    反射
    jdbc02
    jdbc --例子7
  • 原文地址:https://www.cnblogs.com/xiangnan/p/3397694.html
Copyright © 2011-2022 走看看