OO并不是我最强壮的服装,所以请耐心等待。我想设计一个类的结构是这样的:如何在Python类中设置属性
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测序,因为这需要一段时间。但是我需要Human对象具有dna_sequence属性,以便稍后可以进行排序。解决方案是在init方法中设置属性,但将其设置为None
,直到调用sequence_dna方法为止?似乎是kludgy,尤其是因为我有很多变量,所有这些都取决于DNA测序的结果,因此设置为None。
我觉得我缺少一块拼图...
这是什么'get_'业务? Python有真实的属性。 – 2012-02-23 08:41:38
我不会称他们是真实的。它们只是方法的包装。你也可以创建一个属性类来设置一个属性 - 在指定某个属性与我无关后,必须定义'get'和'set'。 当OP对财产有疑问时,我会留意,但这个似乎是关于OO和继承。 – synthesizerpatel 2012-02-23 09:17:29
非常好。所以我的直觉是正确的:我需要将所有内容都设置为“无”,然后根据请求设置它们的值。谢谢。 – mlissner 2012-02-24 04:37:29