Pythonにおけるsuper()メソッドの使用
1050 ワード
サブクラスでコンストラクタも定義されている場合は、init_()関数ですが、ベースクラスのコンストラクタはどのように呼び出されますか?
方法1.サブクラスのインスタンスを使用してベースクラスを呼び出すコンストラクタを明確に指定し、サブクラスのコンストラクタでベースクラスを呼び出すコンストラクタを明確に指定する.
メソッド2、super()メソッドを使用するsuper()メソッドの美しさは、サブクラスコンストラクタを定義する際に、サブクラスのベースクラスを明確に指定し、明示的に呼び出す必要がないことです.つまり、親を明確に提供する必要がないことです.このようなメリットは、継承された親を変更した場合、コード行を1行修正するだけで、多くのコードで変更するベースクラスを検索する必要はありません.一方,コードの移植性と再利用性も高い.
以上のコードのPはCの親です.
方法1.サブクラスのインスタンスを使用してベースクラスを呼び出すコンストラクタを明確に指定し、サブクラスのコンストラクタでベースクラスを呼び出すコンストラクタを明確に指定する.
class C(P):
... def __init__(self):
... P.__init__(self)
... print 'calling Cs construtor'
メソッド2、super()メソッドを使用するsuper()メソッドの美しさは、サブクラスコンストラクタを定義する際に、サブクラスのベースクラスを明確に指定し、明示的に呼び出す必要がないことです.つまり、親を明確に提供する必要がないことです.このようなメリットは、継承された親を変更した場合、コード行を1行修正するだけで、多くのコードで変更するベースクラスを検索する必要はありません.一方,コードの移植性と再利用性も高い.
>>> class C(P):
... def __init__(self):
... super(C,self).__init__()
... print 'calling Cs construtor'
...
>>> c=C()
以上のコードのPはCの親です.