Pythonでポリモーフィズムを理解するには?(復刻版なので、私は理解しています。)[プラス]自己認識

スティッキーは、言葉遣いの基本Pythonのチュートリアルによると、私自身の見解の一部を書き:多型は、異なるタイプとオブジェクトのクラスの同じ治療の能力を意味し、両方の方法は、それが対象です知らずに呼び出すことができますがどのクラスに属します。

.Clearメソッドを使用すると、辞書のリストは、このメソッドを呼び出して与えることができ、同様です。

.count文字列、リスト、タプル、使用することができますを与えるために、この方法は、多型であります

あなたは、同じ機能の異なる種類で動作させることができ、見つけることができませんでした。パリティは、オブジェクトがその文でどのクラスを知らなくても、実際には、これらの方法では、我々はどのような種類のを知っていますか、ということを疑います

私は本当に、私はこれらのメソッドは、操作のそのタイプの範囲内であり得ることを知っている必要はありませんどのクラスの文字通りの意味を考えると台無しにしない、意味のどのようなものを知っている必要はありませんすることができ、どのような種類を知りません。

たとえば、あなたが知っている必要があります.countリストの前にある、元祖または文字列は、最後の方法に来たようで、でisinstanceかの判断を入力する必要はありません、爽やか、過去を見てプログラムが容易になります

 

以上が私の理解です。

 


多型の役割でPythonは

関数名と異なるコンテンツ(機能)関数を呼び出すことができるように異なる機能を持つ関数は、同じ関数名を使用することができます。
Pythonの多型の機能

インスタンスオブジェクトは、同じ名前の方法でのみ関係しているオブジェクトのタイプ所属に関係なく;
2、クラス・オブジェクトが属する間、相続分配;
3、マルチステートのコードの利点を増大させることができます外部コール柔軟性、コードより汎用性の高い、比較的強い互換性を作る;
4、多型は、メソッドと呼ばれる手法は、インテリアデザインのクラスには影響しませんです。
シナリオポリモーフィック

クラス1のオブジェクトの間には継承関係が属していない
異なるパラメータ(オブジェクト)を渡して、あなたは異なる機能を実現することができ、)(同じ機能が飛ぶ呼び出す

#ダッククラス:クラスダック(オブジェクト)
    (DEF飛びますセルフ):
        印刷(「アヒルが地面に沿って飛んだ」)

クラススワン(オブジェクト):#スワンクラスは
    デフ飛ぶ(セルフ):
        印刷(「白鳥が空気中に飛んで」)

クラスプレーン(オブジェクト):#飛行機クラスは
    デフ飛びます(自己):
        印刷(「飛行機が轟音を脱ぎました」)

機能フライ達成するために、#関数:DEF(OBJ)をフライ
    obj.fly()

ダックダック=()
フライ(アヒル)

スワンスワン=()
フライ(スワン)

プレーンプレーン=()
面)フライ

:===業績を================================================== =================================
アヒルは最大地面に沿って飛んで
空中を飛んでいる白鳥
飛行機が離陸したランブル

    1
    2
    。3
    。4
    。5
    。6
    。7
    8
    9
    10
    11
    12は
    13である
    14
    15
    16
    17
    18である
    。19
    20
    21である
    22である
    23れます
    24
    25
    26である
    27の
    28

オブジェクトが属するクラス2の間の継承関係(広いアプリケーション)

クラスgradapa(オブジェクト):
    DEF __init __(自己、マネー):
        self.money =マネー
    DEF P(セルフ):
        印刷(「このgradapa ")である
 
:クラスの父(gradapa)
    DEF __init __(自己、マネー、仕事):
        スーパー().__のinit __(金)
        self.job =仕事
    :P-(自己)DEF
        これは私が書き直し父、IS印刷("親クラスのメソッド")
 
クラスの母(gradapa):
    DEF __init __(自己、マネー、仕事):
        スーパー().__のinit __(金)
        self.job =仕事
 
    P-(自己)DEF:
         印刷("これは母、私の体重であります)」親のメソッドを書く
         100を返します
         
#関数を定義し、関数呼び出しクラスP()メソッドの
DEFのFC(OBJ):
    obj.p()
gradapa1 = gradapa(3000)
father1 =父(2000年、 "労働者")
mother1 =の母(1000年、 "先生" )

FC(#多型ここで具現gradapa1)関数異なるパラメータを通過した後、異なる機能を達成することができ、同じである。
FC(father1)
プリント(FC(mother1))
===結果:===== ================================================== ============================
これはgradapaされ
、これは父ですが、私は親クラスを書き直し
、これは母親ですが、私は書き直し親メソッド
100

    。1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12である
    13である
    14
    15
    16
    。17
    18である
    19。
    20
    21である
    22である
    23である
    24
    25
    26である
    27
    28
    29
    30
    31であり、
    32
    33は
    34である
    35
    36
    37

 
----------------
著作権:このCSDNブロガーが"tigerlib"元記事、BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいCC 4.0に従ってください。
オリジナルリンクします。https://blog.csdn.net/weixin_44695969/article/details/92175840

おすすめ

転載: www.cnblogs.com/sidianok/p/11784947.html