オブジェクト指向のパッケージケースII

オブジェクト指向のパッケージケースII

目的

  • 兵士の襲撃事件
  • アイデンティティ演算子

パッケージ

  1. カプセル化 は、オブジェクト指向プログラミングの主要な機能です
  2. 最初のステップでのオブジェクト指向のプログラミング  -の  抽象クラス にパッケージ化された 属性 と メソッド 
  3. 外の世界 は クラスを 使用してオブジェクト作成し、 オブジェクトに メソッドを呼び出させます
  4. オブジェクトメソッドの詳細は され カプセル化された 内部 クラス

オブジェクトのプロパティは別のクラスによって作成されたオブジェクトに  することができます 

01.兵士の襲撃

要求する

  1. 兵士 徐Sanduo はAK47を持っています 
  2. 兵士 は発砲することができます 
  3. ガンは でき 火災 弾丸を
  4.  に弾丸を 装填する - 弾丸の数を増やす

1.1銃を開発する

shoot メソッドの要件

  • 1>弾丸があるかどうかを判断し、弾丸なしでは撃てない
  • 2>print キューを使用して 弾丸の数を発射して出力します
class Gun:

    def __init__(self, model):

        # 枪的型号
        self.model = model
        # 子弹数量
        self.bullet_count = 0

    def add_bullet(self, count):

        self.bullet_count += count

    def shoot(self):

        # 判断是否还有子弹
        if self.bullet_count <= 0:
            print("没有子弹了...")

            return

        # 发射一颗子弹
        self.bullet_count -= 1
        
        print("%s 发射子弹[%d]..." % (self.model, self.bullet_count))

# 创建枪对象
ak47 = Gun("ak47")
ak47.add_bullet(50)
ak47.shoot()

`

1.2兵士を育成する

仮定:すべての新兵は銃を持ってい ません

初期値のない属性を定義する

属性を定義するときに、設定する初期値わからない場合は、次のよう に設定できます。 None

  • None キーワード は何の意味 もありません
  • 表す 空のオブジェクトメソッドおよびプロパティことなく、特別な定数であります
  • することができます None 任意の変数に代入

fire メソッドの要件

  • 1>銃があるかどうかを確認します。銃なしでは充電できません
  • 2>スローガンを叫ぶ
  • 3>弾丸をロードする
  • 4>撮影
class Soldier:

    def __init__(self, name):

        # 姓名
        self.name = name
        # 枪,士兵初始没有枪 None 关键字表示什么都没有
        self.gun = None

    def fire(self):

        # 1. 判断士兵是否有枪
        if self.gun is None:
            print("[%s] 还没有枪..." % self.name)

            return

        # 2. 高喊口号
        print("冲啊...[%s]" % self.name)

        # 3. 让枪装填子弹
        self.gun.add_bullet(50)

        # 4. 让枪发射子弹
        self.gun.shoot()

 

概要

  1.  組み込みのメソッドを使用して 兵士クラスを作成しました __init__
  2. 属性を定義するときに、設定する初期値わからない場合は、次のよう に設定できます。 None
  3. カプセル化された メソッド内で、 他のクラスによって作成された独自の オブジェクトプロパティでカプセル化されたメソッドを 呼び出す こともでき ます。

02.アイデンティティオペレーター

ID演算子は  2つのオブジェクトのメモリアドレスが同じであるかどうか、つまり同じオブジェクトへの参照であるかどうか比較 する ために 使用され ます

  •  比較するときは 判断を使用すること Python を Noneお勧めします is
| 运算符 | 描述 | 实例 |
| --- | --- | --- |
| is | is 是判断两个标识符是不是引用同一个对象 | x is y,类似 id(x) == id(y) |
| is not | is not 是判断两个标识符是不是引用不同对象 | x is not y,类似 id(a) != id(b) |

isと==の違い:

is かどうかを決定するために使用される 二つの可変参照オブジェクトが同じである、 == かどうかを決定するために使用する 参照変数の値が 等しいです

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> b is a 
False
>>> b == a
True

 

おすすめ

転載: blog.csdn.net/yinzhen_boke_0321/article/details/100110615