パイソンの基礎知識 - フロー制御、関数、オブジェクト、クラス、およびガベージコレクション

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/suoyue_py/article/details/99710036

基本的なプロセスフロー

これは、データ構造の処理の流れを指します。Pythonで、これは3つの基本的な処理の流れ構造を含みます

  • 配列構造:文の順序に従って順次実行見えます
  • 選択構造:実行順序を決定するために、所定の論理状態に応じて、一方向、双方向の選択を選択し、複数点の選択が、実行中の分岐のみプログラムの実行。
  • ループ構造:論理条件が真である場合、条件コード・ロジックは、プログラムの特定の期間が繰り返し実行されたか否かを判定する、処理はループを繰り返す進み、ループはそうでなければ終了します。ループ構造は、サイクル計数サイクル条件に分けることができます。

もし-のelif、他の条件文
whileループ:式がFalseのときwhile文は、ブロックの他を示している場合には、他で使用することができます。
:ループの制御された条件の2つの部分の循環の
構文:

for <variable> in <sequence>:
   语句
else:
   语句

変数が変数名である場合には、シーケンスはリストである
文のelse文が実行されていない、または最後のサイクルが実行されたときに実行するための時間。else文は省略することができます。
多くの場合、ステートメント続ける(ブロックが次のサイクルに進み、現在のサイクルの残りのステートメントをスキップ)と(ループアウト)BREAK結合ループ
のパスステートメントは、構造の完全性を維持するために、メインプログラム空です。一般的にプレースホルダ文として使用何かを、実行せずに渡します。
シーケンス番号は、一般的にループ制御文を結合、範囲()とlen()関数を使用している横断する必要がある場合は、乗数効果を再生します。

機能

Pythonは関数定義defキーワードを使用することで、構文を次のように:

DEF関数名(パラメータ1、パラメータ2、...):
"ファイルの文字列"
<声明>

ファイルの文字列は、この機能のために省略することができる文字列として記述されています。ファイルが存在する場合、その文字列は、それが最初の1文関数でなければなりません。
Pythonの関数のパラメータの受け渡し、使用しているパス・コール・モードを。パラメータは、関数内で変更された場合、いわゆるパス・バイ・コールは、過去に渡されたパラメータのメモリアドレスである、オリジナルのパラメータが影響します。パラメータのデータ・タイプは、モジュール、クラス、インスタンス(インスタンス)であってもよいし、他の機能は、ユーザは、パラメータのデータ・タイプ・パラメータを設定する必要はありません。呼び出し元の関数が必要なパラメータ、キーワードのパラメータ、デフォルトパラメータおよび可変長パラメータを含めるとパラメータタイプを使用することができます。
return文は、呼び出し側に選択的発現を返す関数を終了するために使用されます。無パラメータ値を持つreturn文はNoneを返します。
Pythonインタプリタをロードした後、リーダは、直接使用できる組み込み関数を以下は、組み込み関数の一般的な用途を説明します。
ABS(x)は: Xが複数ある場合には、xの絶対値の値を返し、ABS()関数は、(実部の二乗プラス正方形の虚数部は、平方根)を返し複合体のサイズ。たとえば
>>> ABS(-3.12)
3.12
>>> ABS(1 + 2J)
2.23606797749979
CHR(I):私はASCII文字コード(0〜255)である、CHR( )関数は、I単一文字の文字列の値を返します。CHR()関数およびORD()関数は、逆効果です。97文字以下のコードが得られた場合のASCII文字:
>>> CHR(97)
「」
組み込みのプロパティと関数の名前空間
組み込みのプロパティ多くの機能がありますが、ユーザーは、PythonインタプリタDIR(関数名)、内蔵のプロパティを表示することができたを入力することができます。
入力および出力機能
Pythonの組み込み関数の入力()及び印刷()関数は、入力および出力データに使用されます。
印刷()関数は=変数の末尾に追加することができますラップしない目的を達成するために、デフォルトの出力ラインフィード、あります「」
フォーマット:プリント(出力データ、エンド=「」)

オブジェクト指向プログラミングの主な特長

  • パッケージ(封入):データは、プライバシー情報を確保するために、カプセル化されたデータを介してインターフェース機能のセットを介してアクセスすることができます。
  • 継承(継承):派生クラス(派生クラス)は、その基底クラス(ベース継承
    クラス)のメンバ変数(データメンバ)及びクラスメソッド(クラス
    メソッド)。派生クラスの時間は、クラス(サブクラス)と呼ばれる、またはサブクラス(子クラス)。基礎クラスは、親クラス(親クラス)と呼ばれます。
  • 多型(多型):ポリモーフィック関数が許可され、インターフェースの多くの異なるタイプがあります。関数を呼び出すときに使用されるパラメータに基づいて、クラス、インタフェースの種類を知っています。Pythonは動的型付け(ダイナミック使用する
    多型の機能を実行するためにタイピング)、および(遅延バインディング)遅延バインディング。

クラス(クラス)

同じ特性と同じ挙動を有するオブジェクトのグループは、クラス(クラス)と呼ばれています。大まかに言えば、物事は、プロパティの共通のセットは、クラスと呼ばれています。
オブジェクト指向プログラミングでは、それはクラス名を持つクラスの独立したユニットであり、その内部メンバ変数オブジェクトの属性説明;さらなるクラス含むメンバメソッドをオブジェクトの動作を説明するため、。
クラスは抽象的な概念で、問題を解決する方法を利用したい、あなたは、プログラムの機能を実現するために、クラスのメンバーのために呼び出すために、クラスのメンバ変数にアクセスするには、クラスとオブジェクトのインスタンスを作成し、オブジェクトを介して必要があります。
各クラスは、独自の名前空間を持っている、すべての設定と関数定義は、この名前空間内で発生します。

クラス定義は、
パッケージデータ、およびデータ・インターフェース機能の操作、オブジェクトのグループからなるセットを使用します。クラスでは、オブジェクト(テンプレート)で使用するテンプレートを作成するときにということであると言うことができます。Pythonは、クラスを定義するには、キーワードクラスを使用しています。
構文は次のとおりです。

class <类名称>:
  [“文件字符串”]
<语句>

<文>属性とクラスに定義されているメソッド、Pythonの内の任意の有効なステートメントが含まれています。「ファイルの文字列」を省略することができ、このような文の文字列です。

施工方法と内蔵のような性質
、いわゆるコンストラクタ(コンストラクタ)を使用すると、オブジェクトを作成するときに、オブジェクト自体が関数を実行しているということです。Pythonはオブジェクトコンストラクタの関数として)(__ __initを使用しています。ユーザーがオブジェクト自体内のオブジェクトを指すように望んでいるときは、自己のキーワードを使用することができます。自己キーワードPythonとC ++このキーワードのように、彼らは、オブジェクト自体の代表的なものです。
Pythonのすべてのクラスには、次のプロパティがあります
、A .__ dictの__:辞書オブジェクトのプロパティが辞書オブジェクトの属性値に格納され
、B :DOC __ .__プロパティは、ファイルのクラス文字列を返し
、Cを.__名前を__:プロパティは、クラスの名前を返し
D、.__ Module1の__を:プロパティは、クラスを含むモジュールの名前を返し
、Eを__ .__塩基:属性は、タプルオブジェクトであり、ベース・クラスの名前を返します

ビルトインクラスメソッドの
クラス自体は、多くの組み込みメソッド、これらの組み込みメソッドの開始と終了は、文字の二重のボトムラインですしています。
__ __のinit(セルフ):クラスのインスタンスを作成するときに、このクラスのコンストラクタでは、このメソッドが呼び出されます。
B、__ __ STR(セルフ):このメソッドは、STR()組み込み関数や印刷機能の呼び出しです。文字列にオブジェクトを設定するには、タイプを表示するには、どのように表示されますSTR()関数の戻り値は文字列オブジェクトです。
C、__ __のrepr(自己):このメソッドは、のrepr(ある)組み込み関数の呼び出しは、この機能は、読み取り可能な形式で現れるオブジェクトことができ
、Dを__ __ GETATTR(セルフ、名):このメソッドは、読み出しに使用されるか、または変更されますときにメンバーのプロパティは存在しません。

クラスインスタンスは、
クラス名に指定された変数である限り、クラスのインスタンスを作成します。
⑴使用ID()クラス識別子(アイデンティティ)を返す組み込み関数。
⑵使用のタイプ()オブジェクトのタイプ(オブジェクトタイプ)クラスを返す組み込み関数。
すべてのPythonのクラスのインスタンスは、組み込みの次のプロパティいます
。⑴OBJ 辞書です:クラスのインスタンスのプロパティは、辞書オブジェクトを格納しています。__dict__この属性辞書オブジェクトの値。
。OBJ⑵ クラス:__ class__プロパティを使用し、そのような例を作成するには、クラスの名前を返します。

過負荷演算子(演算子のオーバーロード)
組み込みメソッドクラスオペレータに特性関数を置き換えるためには、
最初にロードする必要があり、オペレータ機能Pythonのインタープリターで使用するオペレータ・モジュールを、オペレータ関数演算モジュールを呼び出します。
ここに画像を挿入説明
クラスの継承(継承)が
、新しいクラスは、古いクラスのプロパティとメソッドを継承し、この動作が呼び出されているサブクラス(サブクラス)。継承派生クラス(派生クラス)と呼ばれる新しいクラスは、古いクラスは、基本クラス(基底クラス)と呼ばれる継承されました。ユーザーが派生クラスを作成するときは、派生クラスで基本クラスのメソッドのいずれかを追加したり、書き換えることができます。
次のように派生クラスの構文は次のとおりです。

class <类名称> [(基类1,基类2, ...)]:
  [“文件字符串”]
<语句>

派生クラスは、ベースクラスは、ベースクラスのうちからコンマで区切られ(、)は、同じ時間を継承することができます。
名前空間の検索順序:クラスのインスタンス- >クラス- >基底クラス

多型クラス(多型)
クラスは、同じ名前の複数が、関数パラメータの異なるタイプを有することが可能です。
パラメータは、データ型宣言Pythonの関数には持っていないため、Pythonは、明らかな多型の特性ではありません。しかし、動的データ・タイプ(動的型付け)、Pythonは依然として多型オブジェクトを処理します。
関数は唯一の機能の種類を知って実行されるまで、ダイナミックデータタイプを使用することは、Pythonは待たなければなりません。この機能は、実行時バインディング(実行時バインディング)と呼ばれています。
C ++多型(多型)法リロード(メソッドの多重定義)と呼ばれるが、C ++は、Pythonは、最後の文は、クラスを使用する許可されていない、クラス内の同じ名前の複数の異なるパラメータの関数が存在することができ機能

カプセル化クラス(カプセル化)は
、クラス内に収容され、そのクラス(変数やメソッド)の属性です。このクラスのメンバーだけが、あなたはクラスの他のメンバーを使用することができます。このような変数や包装方法は、プライベート(プライベートメソッド)を持つクラス変数プライベート(プライベート変数)メソッドを呼び出しました。
すべての変数とクラスメソッドのPythonは、(パブリック)共通しています。唯一のクラスの名前を知っているし、任意の外部のオブジェクトの属性とメソッドの変数やメソッドの名前は、クラスを直接アクセスすることができます。
次の例に示すように、Xは、インスタンス変数MyClassのクラスであり、名前は、変数MyClassのクラスです。X.nameは、変数名のMyClassクラスを使用してアクセスすることができます。

>>> class myClass:
      def __init__(self):
         self.name = None

クラスは、2つの原則をカプセル化します:

  • 最初の内部変数文字属性(変数とメソッド)は、単一の一番下の行の名前は、外部変数のクラスとみなし、このプロパティは、このプロパティを参照することができない場合
  • 最初の2つの文字attributeNameの属性名を指定してコンパイルするとき、一番下の行がある場合(変数やメソッド)は、単一の名前ですが_className__attributeNameを変更される属性が、クラス名は、クラスの名前です。属性名を追加する前に、クラスの名前と、そのクラスと任意の元のプロパティ名に違いがあります。

元クラスは、
としてテンプレート(テンプレート)の他の種類を作成するために使用するクラスです。一般的には、ユーザーがクラスのインスタンス変数を作成するためにクラスを使用します。メタクラスを特定の種類を使用する目的は、メタクラスクラスを作成するための基礎です。そして、基底クラスとして元のクラスが作成されます。
メタクラスは、ユーザーが内部クラスのPythonにアクセスし、変更する機会を持つことができます使用します。人民元クラスの使用例が作成され、それは仕事より簡単に操作オブジェクトのプロパティを作ることができます。

ガーベジコレクション

Pythonは、廃棄物を追跡し、回復するために、この単純な技術を参照カウントを使用しています。
Pythonの中では、それは、各内のすべてのオブジェクトの使用には多くの参考文献は、参照カウンタと呼ばれる方法の記録を内部トラッキング変数を持っています。
オブジェクトが作成されると、それがごみ収集され、オブジェクトが不要になったときに、オブジェクトの参照カウントがゼロになるん、参照カウントを作成します。回復は適切な時にインタプリタによって、「すぐに」ではありません。しかし、それは、オブジェクトが回復メモリ空間のゴミを取るだろう。

おすすめ

転載: blog.csdn.net/suoyue_py/article/details/99710036