gpt4 book ai didi

python - 使用父类调用方法

转载 作者:行者123 更新时间:2023-12-01 04:49:09 25 4
gpt4 key购买 nike

我对面向对象编程非常陌生,并且很难理解如何管理具有相关数据的类之间的关系。

我正在尝试表示一系列生物体的一些基因组信息,我最终将对其进行比较。所以我有一个 Species 类:

class Species(object):
def __init__(self, species_name, genes={}, contigs={}):
self.species_name = species_name
self.genes = genes
self.contigs = contigs

那么我想要一个 Gene 类,

class Gene(object):
def __init__(self, locus_tag, annotation, dna_seq, aa_seq):
self.locus_tag = locus_tag
self.annotation = annotation
self.dna_seq = dna_seq
self.aa_seq = aa_seq

这个想法是,Speciesgenes 方法将是 Gene 对象的字典,其中键是 locus_tag 基因。我想我知道如何实现这一部分。

但我希望能够做的一件事是在 Gene 对象上调用一个函数,该函数需要知道它所在的 Species (它将输出包含 species_namelocus_tag 的文件结构,但它们来自两个不同的类。我能想到的最简单的方法是添加 species_name 直接到 Gene 类,但由于每个 Gene 将位于 Species 中,这似乎是多余的。

我什至不知道从哪里开始 - 我做了很多搜索,但我发现的其他问题要么不相关,要么我不够理解以掌握相关性。

最佳答案

创建 Gene 对象,然后通过传递 genes 字典来创建 Species 对象,然后更新 Gene code> 对象,通过为其设置 Species 实例,如下所示:

for gene in genes:
gene.species = species

之后,每个 Gene 实例 (gene) 都可以通过执行 self.species 来引用其 Species 对象或者,例如,self.species.species_name 来获取名称。

关于python - 使用父类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28777699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com