gpt4 book ai didi

python重载运算符

转载 作者:太空狗 更新时间:2023-10-30 00:28:21 26 4
gpt4 key购买 nike

我需要实现一个 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)

问题:

当我 print(dna_1>dna_2) 时,它返回 False 而不是 True... 为什么?

最佳答案

您可能想要比较 seq:

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

etc.

不是selfseqotherselfseqotherseq

other 这里是另一个 DNA。

如果需要比较长度:

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

etc.

关于python重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com