j'avais cette classe et sous-classe:sous-classe/classe enfant
classe Gamme:
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
classe DNAFeature (Range):
def __init__(self, start, end): self.setStart(start) self.setEnd(end) self.strand = none self.sequencename = none def getSeqName(self, s): return self.SeqName def setSeqName(self, s): self.sequencename = s def getStrand(self): if self.SeqName == 'plus': return 1 elif self.SeqName == 'minus': return -1 else: return 0 def setStrand(self, s): self.strand = s
Et Voici ce que je dois faire: Créez une nouvelle classe - GeneModel- qui contient un groupe d'objets DNAFeature représentant des exons et est une classe enfant de DNAFeature. Il doit implémenter les méthodes suivantes: getFeats() -retourne une liste d'objets DNAFeature, triés par position de départ addFeat (feat) - accepte un exploit DNAFeature et l'ajoute à son groupe interne d'objets DNAFeature setTranslStart (i) - accepte un entier non négatif, définit la position de départ du codon ATG initiateur getTranslStart() - retourne un int, la position de départ du codon ATG initiateur setTranslStop (i) - accepte un int positif, définit la position finale de l'arrêt codon getTranslStop() - retourne un int, la position finale de la codon d'arrêt setDisplayId (s): permet de régler le nom du modèle de gène; getDisplayId() renvoie le nom du modèle de gène, renvoie une chaîne, par exemple, AT1G10555.1 GeneModel doit déclencher des exceptions ValueError et TypeError appropriées lorsque les utilisateurs transmettent des types et des valeurs incorrects aux constructeurs et aux méthodes «set». J'ai essayé d'écrire tout ce qui me vient à l'esprit, de lire les livres et de chercher à assembler des codes, mais je suis si novice en programmation et je ne sais pas vraiment comment écrire les codes correctement. Pour être honnête, c'est la première fois que je fais un cours de programmation. Donc, si je fais une drôle d'erreur dans mes codes, s'il vous plaît pardonnez-moi. Je n'ai pas encore fini mes codes et je lis toujours les livres pour voir où je fais mal et juste avec mes codes. Cependant, j'ai vraiment besoin de votre aide pour me guider sur le bon chemin. Merci beaucoup les gars. Ci-dessous mes codes:
classe GeneModel (DNAFeature):
def __init__(self, translstart, translend, displayid): self.setTranslStart(translstart) self.setTranslStop(translend) setDisplayId(displayid) def getFeats(): result = [] sort.self.getStart() return result def addFeat(feat): self.addFeat = feat return self.getStart+self.getEnd def setTranslStart(i): self.translstart = self.setStart self.translstart = non-negative int def getTranslStart(): return self.translstart def setTranslStop(i): self.translend = self.setEnd self.translend = "+" int def getTranslStop(): return self.translend def setDisplayId(s): self.displayid = re.compile('r'\AT1G[0-9]{5,5}\.[0-9]{,1}, IGNORECASE') def getDisplayId(): return self.displayid
Je suis un peu confus au sujet de votre modèle ici. GeneModel est supposé contenir un ensemble d'instances DNAFeature ou GeneModel est une sous-classe de DNAFeature. Cela fait une grande différence sur la façon dont vous écrivez votre code. – jlv
oui, c'est, GeneModel est une classe enfant de DNAFeature, je suis vraiment désolé pour mes codes, je ne sais pas comment faire les choses correctement, en essayant de lire les livres ... – pmt0512