내 모듈의 탭 완성을 깨끗하게 유지하고 싶습니다. 클래스를 반환하는 함수가 있습니다. 그 클래스는 함수를 통해서만 액세스 할 수 있기 때문에 함수 내부에 클래스를 중첩하여 함수가 정의 된 모듈에서 클래스를 숨길 생각을하고있었습니다. 이 방법이나 권장하지 않는 다른 방법을 사용하지 않을 이유가 있습니까?함수 결과 파이썬에 중첩 된 클래스 사용, 단점은 무엇입니까?
거친 코드 :
def search():
#Nested class
#------------------------------
class SearchResult():
def __init__(self, data):
#do stuff
#---------------------------------
#do stuff - define data
return SearchResult(data)
왜 '모듈에서 숨기시겠습니까?' – zhangxaochen
그가 '모듈 가져 오기'에서 탭 완성을했을 때 그 기능 밖에서 독립적 인'SearchResult'를 만들 이유가 없기 때문에'SearchResult'를 보여주지 않는다고 생각합니다. – aruisdante
제 의견 : 함수 밖에서'SearchResult'를 정의하십시오. 그러나'_SearchResult'라고 이름을 붙여서 "private"이고 일반 용도가 아니라는 것을 강조하십시오. 그러나 또 다른 메모에서'SearchResult'는 어떤 메소드를 정의합니까? 없으면 왜 클래스를 정의해야합니까? 'SearchResult'가'namedtuple' 또는 단순한 튜플을 반환하도록하십시오. – chepner