ホームページ  >  記事  >  バックエンド開発  >  Pythonのクラスのいくつかのメソッドの分析

Pythonのクラスのいくつかのメソッドの分析

WBOY
WBOYオリジナル
2016-06-16 08:41:411008ブラウズ

この記事では、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 プログラミングを学習するすべての人にとって一定の参考価値があると信じています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。