人々が「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__。