如何像 C# 中的 CompareTo() 一样比较 python 中的整数?

问题描述

据我所知,在.NET Framework中有一个方法Int32.Compareto(),如果数字相等,则返回0,如果括号中的数字更大,则返回-1,否则返回1。是否存在这方法,在python中具有相同的返回值,还是我必须自己写一个

解决方法

也许在一些神秘的第三方库中,但没有,在“vanilla”Python 3.x 中没有方法可以做到这一点,尽管实现类似功能的代码应该像这样简单:

def compare_to(val1: int,val2: int) -> int:
    if val1 > val2:
        return 1
    elif val1 < val2:
        return -1
    elif val1 == val2:
        return 0

或者,为了更接近您使用 int 的自定义子类所描述的内容:

class Int32(int):
    def compare_to(value: int) -> int:
        if self > value:
            return 1
        elif self < value:
            return -1
        elif self == value:
            return 0