저는 프로젝트에서 자주 재사용 될 다양한 함수의 라이브러리를 만들고 있습니다. 각 함수는 stateless입니다 (작성시 매개 변수가 필요하지 않으며 메모리가 없습니다). 일부 기능은 다른 기능을 사용합니다.파이썬 : 상태 비 저장 함수 라이브러리 디자인
이 함수는 나머지 프로젝트에서 인수로 전달됩니다.
다음 중 어떤 접근 방법이 더 좋습니까?
class F1:
def __call__(x):
# use x
f1 = F1()
class F2(F1):
def __call__(x):
# use x and f1
f2 = F2()
: 사용에 기초
def f1(x):
# use x
def f2(x):
# use x and f1
2.Define 모든 클래스의 메소드로서 기능, 및 계층 구조의 클래스를 준비 :
1.Define에게 특정 모듈 전역 함수로서 모든 기능
옵션 2를 고려한 이유는 일부 기능에 공통적 인 점이 있기 때문입니다. 예 : 함수 f2
, f3
, f11
은 모두 f1
으로 전화를 시작합니다. 내가 어떤 지점을 볼 수 없습니다, 당신은이가 상태 함수는 경우가되지 않을 것 수업에 데이터를 저장하지 않는 경우
class F1:
def __call__(self, x):
self.f1(x)
self.calc(x)
def f1(self, x):
# do something
# don't define calc here; F1 is abstract base class
class F2(F1):
def calc(self, x):
# do something
class F3(F1):
def calc(self, x):
# do something
어디에서 2 할 아이디어를 얻었습니까? –
@FrancisAvila : 내 생각을 설명하기 위해 업데이트 된 질문을 참조하십시오. – max
'F2'와'F3'는'F1'을 확장 시켰습니까? 그것은 코드가 말하는 것은 아닙니다 ... –