永恒的蓝色梦想 发表于 2020-3-26 09:14:39

class_cmp2key

本帖最后由 永恒的蓝色梦想 于 2020-3-26 09:16 编辑

今天闲来无事,写了个把使用__cmp__方法的类转换成__lt__、__eq__之类的方法的类的函数{:10_327:}(其实是水贴{:10_256:})

调用方式:class_cmp2key(cls)

返回值:None

代码:def class_cmp2key(cls):
    func=cls.__cmp__
    del cls.__cmp__

    cls.__gt__=lambda a,b:func(a,b)>0
    cls.__ge__=lambda a,b:func(a,b)>=0
    cls.__eq__=lambda a,b:not func(a,b)
    cls.__ne__=lambda a,b:bool(func(a,b))
    cls.__lt__=lambda a,b:func(a,b)<0
    cls.__le__=lambda a,b:func(a,b)<=0

永恒的蓝色梦想 发表于 2020-3-26 09:22:54

自占沙发{:10_327:}

一个账号 发表于 2020-3-26 09:33:55

三楼是我的了{:10_256:}

zhiweng07 发表于 2020-10-28 21:38:28

好好学习天天向上
页: [1]
查看完整版本: class_cmp2key