この記事では、Python のクラスのいくつかのメソッドを例とともに分析し、参考のために共有します。具体的な分析は次のとおりです。
まず次のコードを見てみましょう:
class Super: def delegate(self): self.action() class Provider(Super): def action(self): print 'in Provider.action' x = Provider() x.delegate()
この記事の例の実行環境はPython2.7.6です
実行結果は次のとおりです:
Provider.action 内
スーパー クラスで delegate() メソッドを定義し、デリゲートで self.action を呼び出し、Provider サブクラスでアクション メソッドを実装します。サブクラスが親クラスのデリゲート メソッドを呼び出すと、実際には独自のアクション メソッドが呼び出されます。 。
一言で言えば:
このサブクラスは、親クラスのデリゲートで予期されるアクション メソッドを実装します
次のコードを見てみましょう:
class Super: def delegate(self): self.action() def method(self): print 'super method' class Inherit(Super): pass class Replace(Super): def method(self): print "replace method" class Extended(Super): def method(self): print 'in extended class' Super.method(self) print 'out extended class' class Provider(Super): def action(self): print 'in Provider.action' x = Inherit() x.method() print '*'*50 y = Replace() y.method() print '*'*50 z = Extended() z.method() print '*'*50 x = Provider() x.delegate()
実行結果は次のとおりです:
super method ************************************************** replace method ************************************************** in extended class super method out extended class ************************************************** in Provider.action
親クラスのメソッドを継承し、親クラスのメソッドを置き換え、親クラスのメソッドを拡張します
スーパー クラスはデリゲート メソッドを定義し、サブクラスがアクション関数を実装することを期待し、プロバイダー サブクラスはアクション メソッドを実装します。
この記事で説明されている内容は、Python プログラミングを学習するすべての人にとって一定の参考価値があると信じています。