Jav*_*dev 5 python operator-overloading string-length
我需要实现一个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...为什么?
Pav*_*sov 14
你可能想要比较seqs:
def __lt__(self, other):
return self.seq < other.seq
etc.
Run Code Online (Sandbox Code Playgroud)
不是self的seq用other,self的seq用other的seq.
other 这是另一种DNA.
如果你需要比较长度:
def __lt__(self, other):
return len(self.seq) < len(other.seq)
etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9978 次 |
| 最近记录: |