У меня есть код для класса Range, как это:Python Range Class/Подкласс
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
Моя задача заключается в создании подкласса Range, названный 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
Избавьтесь от тех геттеров и сеттеров. Python - это не Java. Даже если вам когда-нибудь понадобится добавить некоторую реальную логику в 'some_range.end = ...', вы можете сделать это через свойства без нарушения кода. – delnan
@Aaron: я импортирую его, но не смог из-за неправильных кодов в seq == POSITIVE, я просто не знаю, как настроить getStrand на ответ, так как функция strand является postive, она возвращает 1, поскольку функция strand is минус, он возвращает -1, и без каких-либо параметров возвращает 0. Как 0: – pmt0512