목록이 있는데 필자는 파일을 사용합니다. 각 유형의 파일은 다른 f}으로 처리되어야합니다. 나는 "MyFile"이라는 클래스를 만들었고 거대한 if : 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 - ('엑셀 파일') doc_0386.docx - ('워드 파일')
질문 : f.get_filetype에서 반환 된 함수를 호출하려면 어떻게 ()?
file_type[1]()
반환 값 : process_xlsx (1 개) 필요한 위치 인수 누락 '자기'
file_type[1]
는 _ 오류를 생성하지 않습니다, 그러나 결코 실제로 호출 (중단 점은 프로세스 내에서 도달하지 못했다하게 ???? 메서드)
이렇게 다시 개체 메서드를 호출하는 구문은 무엇입니까?
나는 이것이 나의 세부 사항과 함께 설명하기 위해 약간 뒤얽힌다고 알고있다. 그리고 그것을 위해 나는 사과한다.
미리 감사드립니다.
당신이 이미 알고 있듯이, 이것은 완벽하게 작동했습니다! 고맙습니다. 필자는 파이썬을 처음 사용하고 있으며 일부 세부 사항을 고민하고 있습니다. 이것은 나를 위해 또 다른 것을 채웠다. 또한 "부분"에 대한 추가 정보를 가져 주셔서 감사합니다. 나는 이것에 대해 더 깊이 파고들 것이다. 그러나 나는 그것이 내가 향하고 있다고 생각한 곳이다. 많은 칭찬. – billbris