사람들이 "파이썬 (Zen of Python)"을 앵무새로 삼을 때 다소 당황 스럽습니다. 디자인 철학이다. 특정 디자인 결정은 항상 보다 구체적인 용어로 설명 될 수 있으며, 그렇지 않으면 "파이썬 (Zen of Python)"이 무엇인가를위한 변명이되어야합니다.
이유는 간단합니다. 기본 클래스를 구성하는 방법과 전혀 유사한 방식으로 파생 클래스를 구성 할 필요는 없습니다. 더 많은 매개 변수를 가질 수도 있고 더 적은 매개 변수를 가질 수도 있습니다.
class myFile(object):
def __init__(self, filename, mode):
self.f = open(filename, mode)
class readFile(myFile):
def __init__(self, filename):
super(readFile, self).__init__(filename, "r")
class tempFile(myFile):
def __init__(self, mode):
super(tempFile, self).__init__("/tmp/file", mode)
class wordsFile(myFile):
def __init__(self, language):
super(wordsFile, self).__init__("/usr/share/dict/%s" % language, "r")
이것은뿐만 아니라 모든 파생 된 방법에 적용됩니다 __init__
.
__init__
메소드 를 상속하기 위해 데코레이터를 작성하고 서브 클래스를 자동으로 검색하여 장식 할 수도 있습니다.