我有一個列表,我將使用文件作爲示例。每種類型的文件需要以不同的方式處理。我創建了一個類「MyFile」,而不是維護一個巨人,如果:elif:else:structure我創建了一個文件類型爲字典的字典。這存儲爲一個類變量。調用從方法返回的對象方法作爲方法變量
class MyFile(object):
def process_xlsx(self):
#process file stuff for Excel
pass
def process_docx(self):
#process file stuff for Word
pass
def get_filetype(self):
try:
return self.FileTypes[file_extension]
except KeyError:
return None #filetype not handled... yet
FileTypes = {
"XLSX": ("Excel File", process_xlsx),
"DOCX": ("Word Document", process_docx)
}
在不同的類/對象/模塊中,我實例化MyFile類並開始逐步瀏覽這些文件。 MyFile對象已正確創建。
f = MyFile("full_file_path_and_name")
file_type = f.get_filetype()
file_type有一個帶有鍵和函數對象的元組。這裏有一個例子: xls_0386.xlsx - (「Excel文件」) doc_0386.docx - (「字文件」)
問:我如何調用從f.get_filetype返回的功能( )?
file_type[1]()
返回:process_xlsx()失蹤1個人需要的位置參數: '自我'
file_type[1]
創建沒有錯誤,但實際上從未進行呼叫(斷點從來沒有在過程中達到_ ????方法)
那麼,以這種方式調用對象方法的語法是什麼?
我知道這是有點複雜解釋我的具體情況,併爲此表示歉意。
在此先感謝。
正如你所知,這個工作完美!謝謝。我是Python的新手,我仍然試圖讓我的頭腦中的一些細節。這爲我填補了另一個。 此外,感謝您有關「部分」的更多信息。我會深入研究這一點,但這絕對是我認爲我領導的地方。 很多榮譽。 – billbris