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