小编Jav*_*dev的帖子

python重载运算符

我需要实现一个DNA类,它具有一个序列,该序列由字母表中的一串字符组成('A,C,G,T'),我需要重载一些小于,大于等的运算符.

这是我的代码:

class DNA:
    def __init__(self,sequence):
        self.seq=sequence

    def __lt__(self,other):
        return (self.seq<other)

    def __le__(self,other):
        return(self.seq<=other)

    def __gt__(self,other):
        return(self.seq>other)

    def __ge__(self,other):
        return(len(self.seq)>=len(other))

    def __eq__(self,other):
        return (len(self.seq)==len(other))

    def __ne__(self,other):
        return not(self.__eq__(self,other))

    dna_1=DNA('ACCGT')
    dna_2=DNA('AGT')
    print(dna_1>dna_2)
Run Code Online (Sandbox Code Playgroud)

问题:

print(dna_1>dna_2)它返回false而不是true...为什么?

python operator-overloading string-length

5
推荐指数
1
解决办法
9978
查看次数