パッケージ
- パッケージングは、 オブジェクト指向プログラミングの大きな特徴であります
- オブジェクト指向プログラミング の最初のステップ - 属性 および メソッド パッケージ化 抽象に クラス で
- 外の世界 使用して クラスを 作成するには 、オブジェクトを、その後、 オブジェクトの呼び出し方法を聞かせて
- オブジェクトのメソッドの詳細は されている カプセル化 して 、クラスの内部
オブジェクトの 属性が かもしれ 作成されたオブジェクトの別のクラス
01.兵士の暴行
需要
- 兵士 表参道は あり AK47を
- 兵士たちは することができます 火災
- ガン の可能 発射 弾丸を
- ガン 積載 荷重弾丸 - 弾丸の数を増やします
1.1開発GUN
shoot
メソッドの需要
- 1>弾丸があるかどうかを判断するために、無弾丸は撮影できません
- 2>使用の
print
ヒント撮影、および出力弾数
クラスガン: デフ__init __(自己、モデル): #ガンモデル self.model =モデル 弾丸の#量 self.bullet_count = 0 デフadd_bullet(自己カウント): self.bullet_count + =数 デフ撮影(セルフ): #弾丸があるかどうかを確認し self.bullet_count <= 0の場合: (「何の弾丸を...」)を印刷しません リターン #弾丸を起動します self.bullet_count - = 1 印刷( "%sが弾丸を発射[%dの] ..." %(self.model、self.bullet_count)) #オブジェクトの銃を作成します。 がak47 =ガン( "がak47") ak47.add_bullet(50) ak47.shoot()
兵士クラスの1.2開発
仮定:すべての新兵はありません 何の銃を
属性は、初期値なしで定義されています
属性を定義するとすれば、 何かが初期値の設定を知らない、それは次のように設定することができます None
None
キーワードは 表していない 、何も- 示し ヌルオブジェクト、ないメソッドとプロパティは、特別な定数であります
- あなたは、可能な
None
任意の変数に代入します
fire
メソッドの需要
- 1>は銃が無償できない、銃か否かが判断されます
- 2>スローガンを叫びます
- 3>ロードの弾丸
- 4>撮影
クラス兵士: デフ__init __(自己、名): #名前 self.name =名前 #銃、なしの兵士最初のキーワードは何もないことを示していない銃 self.gun =なし デフ火(自己): #1は、兵士が銃を持っていたかどうかを判断します self.gunがNoneの場合: 印刷( "[%s]はありません銃..." %のself.name) リターン 2.叫ぶスローガン# 印刷( "充電... [%s]は" %のself.name) #3。は、ロードされた銃の弾丸をしてみましょう self.gun.add_bullet(50) #銃は弾丸を発射してみましょう4。 self.gun.shoot()
概要
- 作成 兵士クラスを使用する
__init__
組み込みの方法 - 属性を定義するとすれば、 何かが初期値の設定を知らない、それは次のように設定することができます
None
- パッケージ 内部メソッド、あなたも作ることができ 、独自 のプロパティの他のクラス使用して作成されたオブジェクト の呼び出しがされている 方法をパッケージ化
02.アイデンティティ演算子
同一のオペレータがために使用される 比較 の二つのオブジェクト のメモリアドレスを 同じである- それは同じオブジェクトへの参照であるか否か
Python
するためにNone
、比較、使用することをお勧めしますis
判断を
演算子 | 説明 | 例 |
---|---|---|
あります | 判定された二つの識別子が同じオブジェクトを参照していないです | xがyである、类似ID(X)== ID(Y) |
ではありません | 判定された二つの識別子は、別のオブジェクトを参照されませんされていません | xがyない、类似ID()!= ID(B) |
==の違いは次のとおりです。
is
決定するための 2つの変数を対象かどうかを同じを参照して==
決定するための 参照変数の値が 等しいです
>>> = [1、2、3] >>> B = [1、2、3] >>> BがAであります 偽 >>> B == A 真