犬を作成し、犬はオブジェクトです、彼は2つの側面を持っています
1。犬の特徴:名前、性別など
dog1 = { ' name ':' wangcai ' 、 ' gender ':' male ' 、 ' type_ ':' Tibetan Mastiff ' 、 }
2。犬の能力:座ったり、走ったり、吠えたり、噛んだりできる-機能を使って能力を表現できる
def sit(dog1): print('A dog {%s}、sit on the ground '%dog1 [ ' name ' ]) def run(dog1): print('A dog {%s} is running is '%dog1 [ ' type_ ' ])
犬の特性と機能は分かれていますが、どうやってそれらを結びつけるのですか?-1つの方法は、辞書に追加することです
dog1 = { ' name ' :name、 ' gender ' :gender、 ' type_ ' :type_、 ' sit ' :sit、 ' run ' :run }
このようにして、犬の特徴と機能は辞書に統合されます。
#狗的 功能def sit(dog1): print('A dog {%s}、sit on the ground '%dog1 [ ' name ' ]) def run(dog1): print('A dog {%s} is running '%dog1 [ ' type_ ' ]) #dog1 の特徴 = { ' name ' :name、 ' gender ' :gender、 ' type_ ' :type_、 ' sit ':座る、 「走る」:run }
最後に、関数を使用してこの関数と機能をラップし、さりげなく呼び出されないようにすることができます
DEF 犬(): #犬の機能 DEF SIT(DOG1): プリント(' 犬{%S}、地面に座っ'%のDOG1 [ ' 名前' ]) DEF RUN(DOG1): プリント(' 犬{% s} Running '%dog1 [ ' type_ ' ]) #dog dog1 = { ' name 'の特徴:name、 ' gender ' :gender、 ' type_ ' :type_、 '座る' :座る、 ' run ' :run } return dog1
内部の機能や関数を呼び出しますが、それでもreturnを通じて私たちに戻る必要があります
さらに改善するには、辞書コンテンツを機能化します
DEF 犬(): #犬の機能 DEF SIT(DOG1): プリント(' 犬{%S}、地面に座っ'%のDOG1 [ ' 名前' ]) DEF RUN(DOG1): プリント(' 犬{% S}が実行されている'%のDOG1 [ ' TYPE_ ' )] #1 の犬の特性 DEF INIT(名前、性別、TYPE_) DOG1 = { ' 名前' :名、 ' 性別' :性別、 ' TYPE_を':type_、 ' sit ' :sit、 ' run ' :run } return dog1 return init(name、gender、type_)
オブジェクト指向プログラミング全体が完了する
DEF 犬(): #犬特徴 DEF INITを(名前、性別、TYPE_) DOG1 = { ' 名前' :名、 ' 性別' :性別、 ' TYPE_ ' :TYPE_、 ' SIT ' :SIT、 ' RUN ' :RUN } 戻りDOG1 #1 の犬の機能 DEF SIT(DOG1): プリント(' 犬{%S}、地面に座っ'%のDOG1 [ ' 名前' ]) def run(dog1): print(' A dog {%s} is running '%dog1 [ ' type_ ' ]) return init(name、gender、type_)
その後、あなたは呼び出すことができます
d1 = dog(' Wangcai '、' Mother '、' Tibetan Mastiff ' ) d2 = dog(' Dog '、' Mother '、' Hunting Gut ' ) d1 [ ' sit ' ](d1) d2 [ ' run ' ] (d2)
オブジェクト指向プログラミング全体が完了する
クラスやオブジェクトのように見えますか?
クラス・ドッグ(): DEF __init__ (セルフ、名前、性別): self.name = 名前 self.gender = 性別 DEF SIT(セルフ): 印刷(' 犬%sの、地面に座って'%self.name)を DEF RUN (self): print('A dog {%s} is running '%self.gender)