我有一個Range類這樣的代碼:Python的Range類/子類
class Range:
def __init__(self, start, end):
self.setStart(start)
self.setEnd(end)
def getStart(self):
return self.start
def setStart(self, s):
self.start = s
def getEnd(self):
return self.end
def setEnd(self, e):
self.end = e
def getLength(self):
return len(range(self.start, self.end))
def overlaps(self, r):
if (r.getStart() < self.getEnd() and r.getEnd() >= self.getEnd()) or \
(self.getStart() < r.getEnd() and self.getEnd() >= r.getEnd()) or \
(self.getStart() >= r.getStart() and self.getEnd() <= r.getEnd()) or \
(r.getStart() >= self.getStart() and r.getEnd() <= self.getEnd()):
return True
else:
return False
我的任務是創建範圍的子類,稱爲DNAFeature,表示一定範圍的也有一個鏈和序列名稱:
實施setStrand
和getStrand
,其設置和返回鏈信息,並setSeqName
和getSeqName
,其設置或返回的功能所屬的序列的名稱。 如果一個特徵位於負(反向)鏈上,getStrand()
應該返回-1。如果一個功能是正鏈上,getStrand()
應該返回1,如果沒有設置鏈,getStrand()
應該返回0
我試圖寫的東西,但看起來不正確的一切對我來說,每個人都可以請幫助我這個,謝謝你這麼多球員,這是我的代碼:
class DNAFeature(Range):
def __init__(self, strand, sequence):
self.setStrand(strand)
self.setSeqName(sequence)
def getSeqName(self):
return self.plus or minus
def setSeqName(self, seq):
self.sequence = seq
def getStrand(self):
if self.getSeqName(self.strand) == 'plus':
return 1
if self.getSeqName(self.strand) == 'minus':
return -1
else:
return 0
def setStrand(self, strand):
self.strand = strand
你是什麼意思,它不'看起來是正確的?你運行它了嗎?你有沒有收到任何錯誤信息?它表現出什麼樣的行爲,你不想要?可能,你在一個編程班,而不是藝術課。 – aaronasterling 2010-10-11 20:48:04
擺脫那些獲得者和制定者。 Python不是Java。即使你需要添加一些真正的邏輯到'some_range.end = ...',你可以通過屬性來完成,而不會破壞任何代碼。 – delnan 2010-10-11 20:54:57
@Aaron:我導入它,但由於在seq == POSITIVE不正確的代碼,我不知道如何將getStrand設置爲響應,因爲特徵鏈是正解,它返回1,作爲特徵鏈是負數,它返回-1,沒有任何設置,返回爲0.謝謝 – pmt0512 2010-10-11 20:59:46