我對OOP(以及Python的新手)比較陌生,而且我正在嘗試創建在某個文本文件中傳遞時實例化的對象。當這個文本文件被解析並組織成我想要的數據結構(在這種情況下,這是一個字典)時,我還想有另外一個變量存在,用於統計原始文本文件中未被錄入到字典。如何提取在Python中的對象的構造函數中計算的變量?
當對象被實例化時,我可以訪問在對象的構造函數中創建的字典,因爲我使用了getitem方法。但是,我似乎無法訪問我在構造函數中計算的變量。我試圖編寫一個返回變量的新方法,但它不起作用。它只是說我已經「在0x11cfaaf10 < 主要 .ClassName對象的綁定方法ClassName.get_unregistered」返回此
這裏是我當前的階級結構的一個例子:
class ClassName(object):
def __init__(self):
textfile= 'sometextfileofsequences.txt'
self.dict_of_sequences= SeqIO.to_dict(SeqIO.parse(textfile, "fasta"))
unregistered_sequences=0
for name in self.dict_of_sequences.keys():
#the sequences gets evaluated here. if it matches a certain condition,
#then it is included in the dictionary. Or else it is left out.
if (self.dict_of_sequences[name])== condition
self.dict_of_sequences[name]= sequence
else:
self.dict_of_sequences.pop(name, None)
unregistered_sequences+=1
def __getitem__(self, key):
return self.dict_of_sequences[key]
def get_unregistered(self):
return unregistered_sequences
我的很多編碼經驗已經通過在線資源獲得,所以有很多理論和概念我都沒有完全掌握。我試圖閱讀很多關於編碼中的對象以及它們所涉及的技術,但這個表面上簡單的問題讓我頗費了一番苦頭。
我試過了,但現在當我實例化對象並運行get_unregistered方法時,它會返回 **未綁定的方法ClassName.get_unregistered **。 你知道爲什麼嗎? –
查看我的更新回答。你應該用'class'來定義一個類,而不是'def'。 –
哎呦,我在課堂和高清之間搞混了。我原來的代碼有正確的術語,我會編輯上面的代碼來反映這一點。 但你知道爲什麼self.unregistered_sequences不會給我一個整數,而是一個未綁定的方法嗎? –