Pythonのクラス(クラス)と例(インスタンス)方法の使用

最も重要なオブジェクト指向の概念クラス(クラス)およびインスタンス(インスタンス)で、心に留めなければならないクラスは、Studentクラスとして抽象テンプレート、で、インスタンスは、各オブジェクトが持つ、特定の「オブジェクト」に基づいて、クラスから作成されます同じ方法で、しかしそれぞれのデータが異なっていてもよいです。
![操作のPythonのクラスのインスタンスクラスとインスタンスメソッド
](https://img-blog.csdnimg.cn/20181103213647550.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTQ4NDIy,size_16,color_FFFFFF、 t_70)
例えば、Pythonで、クラスはclassキーワードによって定義され、まだ学生のクラスである:
クラス学生(オブジェクト):
パス
クラス名に続いて、クラスの背後にある、すなわち学生、クラス名は通常、続く冒頭に大文字の言葉、ありますすべてのクラスは、最終的にクラスを継承しているオブジェクトのクラスの使用に、もし適切なクラスの継承がない場合はクラスを表す(オブジェクト)は、クラスダウンから継承され、私たちの後ろの継承の概念は、一般的に、それを繰り返します。
**はPythonを学習するプロセスの人々のまた多くは、多くの場合、そこに誰も良いのチュートリアルではありませんか、あきらめて自分自身が簡単にリードガイド、と私はPythonの交換ドレス構築されたので:長い時間と軍事をしばらく思考の流れ(番号同音異義語の下に)変換を見つけることができる、新しいPythonのチュートリアルプロジェクトがあります取ることができ、私は内部の人々とのより多くの交流がああを解決する問題を理解していません!*
学生のクラスを定義して、あなたは学生学生に応じたクラスのインスタンスを作成し、名前+()の実装により、クラスのインスタンスを作成することができます。

学生BART = >>>()
>>> BART
<__メイン__。0x10a67a590学生AT OBJECT>
>>>学生
<クラス'__mainに__。学生は'>
見ることができる、可変BART点は学生の一例であり、後者は0x10a67a590あります学生は、それ自体のクラスであるメモリアドレスは、各オブジェクトのアドレスは、同じではありません。

フリーは、次のような性質を、バインディングインスタンス変数を与えるために、例えばバートは、name属性をバインドします。

Bart.name = >>>「バートシンプソン」
>>> bart.name
「バートシンプソン」
あなたは時間のインスタンスを作成することができるようにクラスは、テンプレートとして機能することができますので、私たちは財産の一部を埋めるために必須バインドされなければならないと信じています内部。インスタンスを作成する際に、特別な__init__メソッドを定義することで、名前、スコアとに結び付けられ、他のプロパティを置きます:

クラス学生(オブジェクト):

__init __ DEF(セルフ、名前、スコア):
self.name =名前
self.score =スコア
注:特別な方法「__init__」の前と後の2つの下線があります!
最初のパラメータの__init__メソッドは常に自己であることを指摘し、それは、それゆえ、自分自身のインスタンスを作成します__init__メソッド内で、あなたは自分が自身のインスタンスを指すように作成されるため、自己にバインドされたプロパティのすべての種類を置くことができ表します。

インスタンスを作成するときに__init__メソッドでは、空のパラメータを渡すと、パラメータは__init__メソッドと一致する必要があります渡すが、自己を渡す必要はありませんすることができない、自分自身のインタプリタPythonは、インスタンス変数に渡します。 :

BART =学生>>>(「バートシンプソン」、59)
>>> bart.name
「バートシンプソン」
>>> bart.score
59
及び正常な機能と比較して、クラスで定義された関数でわずかに異なるが、最初にパラメータは、このパラメータを渡さない、あなたが呼び出すとき、常にインスタンス変数の自己である、と。あなたはまだ、デフォルトパラメータ、変数パラメータ、キーワード、および名前のキーワード引数を使用できるように加えて、クラスと正常な機能の方法は、違いはありません。
データは、カプセル化
、オブジェクト指向プログラミングの重要な特徴は、データパッケージです。各インスタンスは、独自の名前を持ち、上記とスコアデータのStudentクラス。私たちは、このような学生の達成を印刷するよう、機能を介してこれらのデータにアクセスすることができます。

DEF print_score >>>(STD):
印刷...( '%S:%S' %(std.name、std.score))
...
>>> print_score(バート)
バートシンプソン:59
学生以来、しかし、データ自体の例は、このデータにアクセスしなければならず、外部からの機能はカプセル化するために、次に「データ」、そうでない場合、Studentクラス関数内で直接アクセスデータを定義することができるアクセスする必要がありません。これらの関数およびカプセル化されたデータは、Studentクラス自体、私たちはクラスを呼び出すメソッドを関連付けられています。

クラス学生(オブジェクト):

デフ__init __(自己、名前、スコア):
self.name =名前
self.score =スコア

print_score DEF(自己):
プリント(「%S:%S」%(self.name、self.score))
最初のパラメータに加えて、メソッドを定義するためには、外部の自己、及び他の通常の機能です。メソッドを呼び出すには、あなたが唯一のインスタンス変数を直接呼び出す必要があり、自己に加えて、渡された他の正常なパラメータを渡すことはありません。

Bart.print_score >>>()
バートシンプソン:59
その結果、私たちは学生のクラスの外から見る、あなただけの知っている必要があり、指定された名前とスコアのインスタンスを作成する必要があり、どのように印刷するには、学生、クラスの定義の範囲内にありますこれらのデータとロジックを呼び出しまで「パッケージ化」されるのは簡単ですが、彼らは、内部実装の詳細を知りません。

もう一つの利点は、パッケージには、Studentクラスの新しい方法は、そのようなget_gradeに追加することができるということです。

クラス学生(オブジェクト):
...

get_grade DEF(セルフ):
IF self.score> = 90:
リターン'A'
のelif self.score> = 60:
リターン'B'
他:
リターン'C'
間のPythonの学習過程で多くの人々 、多くの場合、理由なしに良いですチュートリアルや誰があきらめて、自分のは簡単有数ガイドする、と私はPythonの交換ドレス建て:ダウン(デジタル同音異義語)変換を見つけることができる考えをストリーミングしながら、新しいPythonのチュートリアルプロジェクトがかかる場合があることを、長い時間呉、内部の人に問題があることを理解していない多くの交流がああ解決します!
同じ、get_grade方法は、変数は、内部実装の詳細を知る必要はありません、インスタンス上で直接呼び出すことができます。

# - * - コーディング:UTF-8 - * -

クラス学生(オブジェクト):
デフ__init __(自己、名前、スコア):
self.name =名前
self.score =スコア

DEF(自己)get_grade:
もしself.score> = 90:
リターン'A'
のelif self.score> = 60:
リターン'B'
他:
戻り'C'

学生=リサ( 'リサ'、99)
バート学生=( 'バート'、59)
印刷(lisa.name、lisa.get_grade())
を印刷(bart.name、bart.get_grade())
を実行し
、上記のコードの読み取りまだ?また、Pythonのを学習する過程で多くの人が、そこには一つの良いチュートリアルはありませんか、あきらめて自分自身が簡単にリードガイド、と私はPythonの交換ドレス建てが多いので:長い時間と軍事をしばらく思考の流れ(デジタル同音異義語)変換を見つけることができる、そして新しいPythonのチュートリアルプロジェクトを取ることができますがありますダウン、内部の人に問題があることを理解していない多くの交流がああ解決します!
自分のアイデアを持つネットワークから、この記事内のテキストや画像は、だけでなく、任意の商業目的のために、元の作者に属し、交換を学ぶために、どんな質問ならば、治療のためにお問い合わせください。

おすすめ

転載: www.cnblogs.com/chengxuyuanaa/p/12120643.html