Pythonの注意:オブジェクト指向

基本的な理論

オブジェクトとは何ですか

すべてがオブジェクトであります

オブジェクトは、特定のものです

  • 属性、行動を持っています
  • 多くの散乱の事、全体としてのパッケージ

Pythonでのすべてが(OOP)オブジェクトは、Pythonは、オブジェクト指向プログラミングの特に完全な言語であります

他の多くのプログラミング言語はまた、プリミティブ型とオブジェクト型、Pythonでながら、唯一のオブジェクト・タイプを指し

&オブジェクト指向プロセス指向

どちらも、問題解決のためのアイデア、思考、あるオブジェクト指向自体は、プロセス指向のパッケージです

  • プロセス指向:問題を解決するには、注意がすべてのプロセスの問題を解決することである(ステップ)
    • 部門の手順に従ってください
    • タスクは、特定のステップのそれぞれに分解され、PUT
  • オブジェクト指向:問題を解決するには、注意が問題のオブジェクトを解決するために必要とされます
    • 機能オブジェクトに応じて分割
    • オブジェクトのプロパティと動作を決定するために、オブジェクトを探します
  • どのようにオブジェクトプロセス指向から顔に:
    • タスク手順リスト
    • そして、オブジェクト分離ステップ関数ブロック
    • 機能コードが特定のオブジェクトに分割されています
    • 特定のオブジェクトの振る舞いと、ベースのエキス

カテゴリ

クラスとは何ですか

抽象クラスは、オブジェクトの特徴の特定のクラスであります

クラスの役割

抽象クラス、特定のオブジェクトの生産

クラスの構成

名前、プロパティ、メソッド

注意:

  • プロパティとメソッドは、抽象的な概念です
  • オブジェクトを生成した後、オブジェクトは、特定の属性値を持ち、達成するための手段

オブジェクトとクラス間の関係

オブジェクト - 抽象 - クラス

クラス - オブジェクト - の例

クラスの定義

クラシックの定義:

class 类名:
    ......

オブジェクトを作成します。

obj = 类名()

基礎となる操作オブジェクトを作成する場合:

  • 最初のメモリ内のいくつかのスペースを開きます(メモリを取り上げるクラスを定義)
  • クラス変数を通じてクラス名を取得します。xxx.__name__
  • オブジェクトを介してクラスを取得します。xxx.__class__

プロパティ関連

属性と変数の違い

コンセプト:

  • 変数:値を変更することができます
  • プロパティは次のとおりです。オブジェクトの特性があります

アクセス:

  • 変数:スコープに応じて、異なるアクセス権があります
  • プロパティ:あなたが唯一のオブジェクトを介してアクセスすることができます
    • オブジェクトは変数によって参照され、スコープはまた、権利を持っています

判断に基づいて:

  • ホストが存在するかどうか

プロパティを追加します。

  1. 直接オブジェクトを介して、ダイナミックに追加
    • 構文:对象.属性 = 值
  2. クラスによって初期化メソッド(コンストラクタ)
    • __init__()

プロパティを添加して、プロパティ値を格納するメモリでいくつかのスペースを開くために、この値は、オブジェクト参照変数オブジェクトスペースに記憶されています

アクセスプロパティ

直接对象.属性アクセス

Pythonは提供__dict__プロパティは、現在、このオブジェクトのすべてのプロパティを含む辞書であり、

プロパティを変更します。

変更プロパティ値:对象.属性 = 值

[削除]プロパティ

del 对象.属性

クラスのプロパティ

クラス属性を増やします。

  • 类名.属性 = 值
  • クラスでは、直接書き込みます 属性 = 值

Viewクラスのプロパティ:

  • 类名.属性
  • クラス属性は、オブジェクトを介してアクセスすることができます。对象.类属性
  • オブジェクトのプロパティディスカバリメカニズム:
    • オブジェクト自体への優先順位は終わりを見つけ、プロパティを見つけるために
    • 見つからない場合は、するに従って、__class__クラスに対応するオブジェクトを見つけ、プロパティのこのクラスを探してください

変更クラスのプロパティ:

  • クラス名によって変更:类名.属性 = 值
  • 对象.__class__.属性 = 值
  • 注:オブジェクトを介して直接変更することはできません!对象.属性 = xxx増加財産や文法、オブジェクトのプロパティを変更

すべてのクラス属性を表示します。类名.__dict__

クラス属性を削除します。

  • del 类名.属性
  • オブジェクトは、デルが唯一の直接プロパティのオブジェクトを削除することができ、削除することはできません

メモリストレージ問題のクラス属性:

  • プロパティが辞書に格納されている、この辞書は、することができます本物である__dict__アクセスすることが
  • 类.__dict__これは、読み取り専用のプロパティです
  • 要約:
    • 一般的には、プロパティがに保存されている__dict__辞書、組み込みオブジェクトいくつかは、このプロパティを持っていません
    • あなたは、直接一般的なオブジェクトの変更可能__dict__な属性を
    • しかし、オブジェクトのクラスは__dict__、読み取り専用、デフォルトで変更することはできませんが、SETATTRによって変更することができます

各オブジェクトクラス属性が共有されます。

RELATED

おすすめ

転載: www.cnblogs.com/wbytts/p/12229979.html