我有一个列表,我将使用文件作为示例。每种类型的文件需要以不同的方式处理。我创建了一个类“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