Оо не мой самый сильный костюм, поэтому, пожалуйста, потерпите меня. Я хочу спроектировать структуру класса примерно так:
class Mammal(object):
def __init__(self):
super(Mammal, self).__init__()
self.dna_sequence = self.sequence_dna()
def sequence_dna(self):
blood_sample = 42
# Code goes here to sequence the mammal's DNA - may take a while.
Затем, в другом классе, я хочу унаследовать от Млекопитающего:
class Human(Mammal):
super(Human, self).__init__()
self.dna_sequence = self.sequence_dna()
def sequence_dna(self):
blood_sample = 43
# use blood sample and Human algo to sequence it.
Так вот, где я застрял. Когда я создаю объект «Человек», я не хочу, чтобы он выполнял последовательность ДНК, потому что это занимает некоторое время. Но мне нужно, чтобы объект Human имел атрибут dna_sequence, чтобы я мог выполнить секвенирование позже. Является ли решение установить атрибут в методе init , но установить его на None
, пока не будет вызван метод sequence_dna? Кажется глупым, тем более что у меня много переменных, все из которых будут зависеть от результата секвенирования ДНК и, следовательно, будут установлены на None.
Я чувствую, что мне не хватает части головоломки ...