J'ai code pour une classe de gamme comme celui-ci:Python Range Classe/Sous
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
Ma mission est de créer une sous-classe de gamme, appelée DNAFeature, qui représente une plage qui a aussi un brin et une séquence nom:
Mettre en oeuvre setStrand
et getStrand
, qui fixe et de retour d'informations brin, et setSeqName
et getSeqName
, qui fixe ou renvoyer le nom de la séquence de la fonction appartient. Si une entité est sur le brin négatif (inverse), getStrand()
doit renvoyer -1. Si une fonctionnalité est sur le brin plus, getStrand()
doit renvoyer 1. Si le brin n'est pas défini, getStrand()
doit renvoyer 0.
J'ai essayé d'écrire quelque chose mais ne me semble pas correct, tout le monde peut aider s'il vous plaît moi avec cela, je vous remercie les gars tellement, voici mon code:
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
Que voulez-vous dire que ça ne «regarde» pas? L'avez-vous exécuté? Avez-vous des messages d'erreur? Quel comportement montre-t-il que vous ne voulez pas? Vraisemblablement, vous êtes dans une classe de programmation et pas une classe d'art. – aaronasterling
Débarrassez-vous de ces getters et setters. Python n'est pas Java. Même si vous avez besoin d'ajouter de la vraie logique à 'some_range.end = ...', vous pouvez le faire via les propriétés sans casser le code. – delnan
@Aaron: Je l'ai importé mais je ne pouvais pas en raison des codes incorrects à seq == POSITIVE, je ne sais pas comment définir le getStrand à la réponse car le brin est positif, il retourne 1, comme brin caractéristique est négatif, il renvoie -1, et sans aucun paramètre, renvoie 0. Merci – pmt0512