~~コアプログラミング(A):1.0〜オブジェクト指向

进击のpython


オブジェクト指向


残念ながら、広い脳の傷、書かれた昨日、忘れては与えられているが、また、再書き込みに!

百を強制的に強制しないでください。

この時点で、あなたは、オブジェクト指向プログラミングを学んだ場合

私は非常にあなたがこのブログを見ていないことをお勧めします

私はバーの罰金と戦いたくないので


私のブログに泊まっ知っています

毎回何か新しいことを学ぶために

私たちは、需要の初めから導入されています

その後、需要が来ます!

私はゲームをプレイしたいです!

再生する方法?

私は犬の多くを持って、私は多くの人々を持っていると思います

犬は噛まことができ、人々は犬することができます

まあ、それのデザイン!


多くの議論にもかかわらず、我々は今、全体の犬に出てくる必要があります

犬はどのような属性を持っていますか?

d_name名

d_kind種

d_blod血

d_atta攻撃

まあ、全体の財産上の犬を決定するために!

dog = {"d_name": "ponny",
       "d_kind": "erha",
       "d_blod": 100,
       "d_atta": 20, }

これは、犬の権利であります

私は今、二匹の犬が欲しいです

どのように書くには?

dog = {"d_name": "ponny",
       "d_kind": "erha",
       "d_blod": 100,
       "d_atta": 20, }

dog1 = {"d_name": "helly",
        "d_kind": "laswer",
        "d_blod": 100,
        "d_atta": 10, }

私たちは、仕上げを見つけました

二匹の犬が多すぎる重複コード(キー)

だから、十分なコードを簡単に!

私たちは道を必要とするだけの場所を変更したい、修正、複製を我慢する直接、

そして、これはちょうど私の二匹の犬であります

私は犬の多くのよ!

その後、我々はどのようにそれを行うには?

この時間は、それは考えていません

私たちは何をする機能を使用することができます!(フロントの機能を理解していなかった場合は、下に見ていません!)


これを行うにはどのように機能しますか?

def dog(name, kind):
    data = {"d_name": name,
            "d_kind": kind,
            "d_blod": 100,
            "d_atta": 20, }
    return data

これは、ああ、関数パラメータの受け渡しではありません!問題ありません!

犬はああも共感されていない全体の出てきました

def person(name, sex):
    data = {"p_name": name,
            "p_sex": sex,
            "p_blod": 100,
            "p_atta": 20, }
    return data

私は問題を抱えています!

犬は同じですか?そうではありません!犬の異なるカテゴリは、異なるサブサブを持っています

攻撃は同じ権利ではありません

その後、我々はコードを最適化することができます!

dog_count = {"erha": 20,
             "laswer": 10}


def dog(name, kind):
    if kind in dog_count:
        data = {"d_name": name,
                "d_kind": kind,
                "d_blod": 100,
                "d_atta": dog_count[kind], }

    else:
        print("品种不明!")
        return None
    return data

問題はありますか?これで停止する問題は、このコードを見ては、履歴書を読んで、ゆっくりです

私は、どのように思いましたか?犬のように、人を好きではありませんか?

その後、聖歌を最適化し続けます!

def person(name, sex):
    data = {"p_name": name,
            "p_sex": sex,
            "p_blod": 100,
            "p_atta": 20, }
    if sex == "man":
        data["p_atta"] = 30
    return data

上記方法は、2つ作られた2つの金型と同等です

ゲームは、あなたがそれを生成する方法を、男性と犬、それを生成する必要があり、開始しますか?

関数呼び出しああ!(あなたは????あなたが機能しない場合は、あなたが読むことができる、参照します)

dog1 = dog("ponny", "erha")
dog2 = dog("helly", "laswer")

person1 = person("zhangsan", "man")

私が意味する方法については、このコードを持っていますか?

次に全体を人に入れ、2匹の外ではないですか?

オブジェクトがありますが、書き込みを開始するものではなく、犬は犬の人を噛みますか?

機能や書き込みを行う方法(がた、あなたは、ああ、それをヒット!)

def bite(dog_obj, person_obj):
    person_obj["p_blod"] -= dog_obj["d_atta"]
    print("疯狗[%s]咬了[%s],掉血[%s]..." % (dog_obj["d_name"], person_obj['p_name'], dog_obj["d_atta"]))


def beat(person_obj, dog_obj):
    dog_obj["d_blod"] -= person_obj['p_atta']
    print("[%s] 打了 疯狗[%s],狗掉血[%s]..." % (person_obj["p_name"], dog_obj["d_name"], person_obj["p_atta"]))

(出力をフォーマットする方法)

まあ、私はそれを終えました!再生を開始します(このことは、全体ではありません前に血液<0を決定するためには、死亡した┗| `O「|┛~~嘆き)を

dog_count = {"erha": 20,
             "laswer": 10}


def dog(name, kind):
    if kind in dog_count:
        data = {"d_name": name,
                "d_kind": kind,
                "d_blod": 100,
                "d_atta": dog_count[kind], }

    else:
        print("品种不明!")
        return None
    return data


def person(name, sex):
    data = {"p_name": name,
            "p_sex": sex,
            "p_blod": 100,
            "p_atta": 20, }
    if sex == "man":
        data["p_atta"] = 30
    return data


def bite(dog_obj, person_obj):
    person_obj["p_blod"] -= dog_obj["d_atta"]
    print("疯狗[%s]咬了[%s],掉血[%s]..." % (dog_obj["d_name"], person_obj['p_name'], dog_obj["d_atta"]))


def beat(person_obj, dog_obj):
    dog_obj["d_blod"] -= person_obj['p_atta']
    print("[%s] 打了 疯狗[%s],狗掉血[%s]..." % (person_obj["p_name"], dog_obj["d_name"], person_obj["p_atta"]))


dog1 = dog("ponny", "erha")
dog2 = dog("helly", "laswer")

person1 = person("zhangsan", "man")

bite(dog2, person1)
beat(person1, dog1)

機能は単に完璧です!


しかし、あなたが演奏を再生し、あなたは見つけるでしょう

このアクション(機能)をかみます

犬は(もちろん、一部の人々は、必ずしも人ではありません)、人々の右側にする必要があります

私は男に行けば?

bite(person1, dog1)

あなたは犬だけが方法を渡すことができる人を置きます

あなたは完成見つけます!すべて間違っているの背後にあります!

どのようにそれを解決するには?

いくつかは、私が裁判官を追加することを、言うかもしれません

オン!

プラスを決定する方法!(出てくるん、ああ、それを自分で行います!)

しかし、私たちは考えて進んで!

嘆き┛~~ | `O」|あなたは┗見ます

一口(一口)犬(犬)アクションではありません

また、唯一の犬(犬)です!

そこで、我々はそうすることはできません!

犬(イヌ)における方法に咬傷(食い込み)

これは、あなたが(犬)犬を呼び出す必要があります、となり

一口を呼び出す前にこのアクション(機能)(かむ)

def dog(name, kind):
    if kind in dog_count:
        data = {"d_name": name,
                "d_kind": kind,
                "d_blod": 100,
                "d_atta": dog_count[kind], }

    else:
        print("品种不明!")

    def bite(dog_obj, person_obj):
        person_obj["p_blod"] -= dog_obj["d_atta"]
        print("疯狗[%s]咬了[%s],掉血[%s]..." % (dog_obj["d_name"], person_obj['p_name'], dog_obj["d_atta"]))
    return data

だから、少しは意味が、私たちは一番下に取得する余裕はありません

まず第一に、私は右に実行するために呼び出す必要があります!

また、私は(一口を追加する必要があります)

def dog(name, kind):
    if kind in dog_count:
        data = {"d_name": name,
                "d_kind": kind,
                "d_blod": 100,
                "d_atta": dog_count[kind], }

    else:
        print("品种不明!")

    def bite(dog_obj, person_obj):
        person_obj["p_blod"] -= dog_obj["d_atta"]
        print("疯狗[%s]咬了[%s],掉血[%s]..." % (dog_obj["d_name"], person_obj['p_name'], dog_obj["d_atta"]))
        
    bite() # 在这呢!!!
    
    return data

その後、私は質問を加え、再び!

あなたは私だけで、早期の心臓ああの()関数の犬の作成を開始違反しました

私は、この関数は犬を生成呼び出すためのもの

あなたは今と呼ばれ、彼はかましましょう!

私は、行が噛まれません生成したくありません!

だから、書き込まれていることには問題があります

だから我々は彼らに直接()をかむべきではありません

あなたはある)(時間咬傷によってもう一度考えなければなりません

def dog(name, kind):
    if kind in dog_count:
        data = {"d_name": name,
                "d_kind": kind,
                "d_blod": 100,
                "d_atta": dog_count[kind], }

    else:
        print("品种不明!")

    def bite(dog_obj, person_obj):
        person_obj["p_blod"] -= dog_obj["d_atta"]
        print("疯狗[%s]咬了[%s],掉血[%s]..." % (dog_obj["d_name"], person_obj['p_name'], dog_obj["d_atta"]))

    data["bite"] = bite ### 看这里!!!!  为了外部可以调用!!!!

    return data

dog1 = dog("ponny", "erha")

print(dog1["bite"])
# <function dog.<locals>.bite at 0x051A7930>

私は、この関数をコールする場合、あなたはライン聖歌に括弧を追加し返す関数ではありません、見て

その後、我々は究極のコードの最適化を持っています!

dog_count = {"erha": 20,
             "laswer": 10}


def dog(name, kind):
    if kind in dog_count:
        data = {"d_name": name,
                "d_kind": kind,
                "d_blod": 100,
                "d_atta": dog_count[kind], }

    else:
        print("品种不明!")

    def bite(person_obj):
        person_obj["p_blod"] -= data["d_atta"]
        print("疯狗[%s]咬了[%s],掉血[%s]..." % (data["d_name"], person_obj['p_name'], data["d_atta"]))

    data["bite"] = bite

    return data


def person(name, sex):
    data = {"p_name": name,
            "p_sex": sex,
            "p_blod": 100,
            "p_atta": 20, }
    if sex == "man":
        data["p_atta"] = 30

    def beat(dog_obj):
        dog_obj["d_blod"] -= data['p_atta']
        print("[%s] 打了 疯狗[%s],狗掉血[%s]..." % (data["p_name"], dog_obj["d_name"], data["p_atta"]))

    data["beat"] = beat

    return data


dog1 = dog("ponny", "erha")
dog2 = dog("helly", "laswer")

person1 = person("zhangsan", "man")

dog1["bite"](person1)

person1["beat"](dog2)

それのための必要性を完全に実現!

あなたが犬に犬を渡すとき、それは(自分の目で確かめてください!)エラーになります


あまり強制的に強制するには、それが何を使用ですか?

オブジェクト指向との関係は何ですか?

実際には、上記のコードは、オブジェクト指向プログラミングで書きます


より多くの固体のオブジェクトになることができる役割を可能にするために設計での役割、

あなたは、基本的なテンプレートを設計し、単純に異なるパラメータを渡す、異なる役割を持っています

これは、すでに神の物事を見ているの視点に切り替えることを始めていることを意味し、神の視点は、オブジェクト指向プログラミングの視点があります

神が世界のすべてを作って、彼は確かに出て作られたものではありません

彼は、テンプレートの種を一つずつを設計した後、金型によって作られた1つのエンティティバルクバッチずつ必要があります

実体の外に作られた、属性、機能が異なっている、と貪欲、欲望と何人かの人々の一部は、一部の人は、何人かの人々の勇敢な弱い自分の特性を持っています

何が戦い、誰が、神の怠惰なチューブは、神が唯一の状況を制御交尾これらの人々との関係になります


*必読*
そうでない場合は、見ていません* *

おすすめ

転載: www.cnblogs.com/jevious/p/11183389.html