名前空間のクラスのオブジェクトのインスタンスの名前空間

名前空間のクラスのオブジェクトのインスタンスの名前空間

クラスを作成するクラスで定義されたすべての名前を格納するために使用されるクラスの名前空間を作成し、これらの名前は、クラスのプロパティと呼ばれています

静的および動的属性:クラスには2つの属性があり

  • 静的プロパティは、クラス変数に直接定義されて
  • 動的プロパティの方法は、クラスに定義されています

データ属性クラスは、すべてのオブジェクトに共有されており

>>> ID(egg.role)
4341594072 
>>> ID(Person.role)
4341594072

 

クラスの動的な性質は、すべてのオブジェクトにバインドされています

>>> egg.attack 
<0x101285860で<__ __メイン。Personオブジェクトのバインド方法Person.attack >> 
>>> Person.attack 
0x10127abf8で<機能Person.attack> 

オブジェクト/インスタンスを作成し、オブジェクト/インスタンスの名前空間、オブジェクトストア/インスタンスの名前、オブジェクト/インスタンスの既知の特性を作成します

名前を見つけるために、OBJ自身の名前空間を開始しますobj.nameでは、例外...見つけることができない親を見つけるためのクラスを見つけることができない、最後のスローを見つけるためのクラスを見つけることができません

 スペースを見つけるために行くには、クラスの名前を見つけることができない、見つけるために、独自の名前空間で始まる、オブジェクトのクラス属性を呼び出すときに、スペースが独立した一方向を探しているの両方で、クラスは、オブジェクトのプロパティを見つけることができない、あなたは、オブジェクトのクラス属性を見つけることができます

オブジェクト指向の組み合わせを使用します

別の方法があります継承に加えて、ソフトウェアを再利用するための重要な方法、すなわち:コンビネーション

複合クラスと呼ばれるデータプロパティとしてオブジェクトの別のクラスへの1つのクラスにおいて、組み合わせを意味

コードをコピー
武器のクラス:
    DEFプリック(セルフ、OBJ):#これは、アクティブスキルの機器では、他の殺害
        obj.life_valueを- = 500の#は、攻撃が500であることを前提としてい

パーソンクラス:人間の#定義
    役割=「人」#の人々を文字属性は、人々がある

    DEF __(自己、名)__init:
        ;各文字は、独自のニックネームを持っている=#self.name名
        兵器の役割にself.weapon =武器()#バインドを、
        
卵が人に(「エゴンを」= )
egg.weapon.prick()
#egg武器オブジェクトを直接組み合わせクラスegg.weaponすべての方法で用いることができる組み合わせ
コードをコピー


リングは二つの円で構成され、リング領域は、円の外側の領域マイナスの円の内側の領域です。これは、リングの内周プラス円外円の円周の周囲です。
今回は、円の周囲長と面積を計算し、最初のラウンドクラスを実現します。円形のおよび「環系」との属性としてにおける組み合わせとして

コードをコピー
数学PIインポート

クラスサークル:
    「」「
    円形のクラスを定義し、
    領域(面積)を算出し、メソッド周(境界)を提供
    」「」
    __init __(自己、RADIUS)をDEF:
        self.radius半径= 

    DEFエリア(自己):
         戻り*をPI * self.radiusのself.radius 

    DEF境界(自己):
        戻り2 * PI * self.radiusの


円円=(10)#円インスタンス
AREA1 = circle.area()#円形領域を算出する
PER1を= circle.perimeter()#円周算出
プリント円の(AREA1、PER1)#印刷領域と境界

カレッジリング:
    「」「
    クラスリングが定義
    リング領域を提供し、方法の周囲
    」「」
    __init__をDEF (自己、radius_outside、radius_inside):
        サークル= self.outsid_circle(radius_outside)
        self.inside_circle =サークル(radius_inside)

    DEFエリア(自己):
        戻りself.outsid_circle.area() - self.inside_circle.area()

    DEF境界(自己):
        戻りself.outsid_circle.perimeter ()+ self.inside_circle.perimeter()


環環=(10,5)#環状インスタンス
プリント(ring.perimeter())#環状周囲算出
計算プリント(ring.area())#環状領域を
コードをコピー

 

クラスとクラスの組み合わせの間で確立された関係との組み合わせでは、そのような誕生日の教授としての関係を、「持っている」、教授が教えるコースのpythonであります

コードをコピー
クラス生年月日:
デフ__init __(自己、年、月、日): self.year =年 self.month =月の self.day =日 クラスクーゼ: デフ__init __(自己、名前、価格、期間): self.name =名前 self.price =価格 self.period =期間の クラスの先生: デフ__init __(自己、名前、性別、生年月日、もちろん):
        self.name =名前
self.gender =ジェンダー
self.birth =出生
self.course =コース
    デフティーチ(自己):
プリント(「教育」)
P1 =教師( 'エゴン'、 '男性'、
生年月日( '1995'、 '1'、 '27')、
クーゼ( 'パイソン'、 '28000'、「4ヶ月)


プリント(p1.birth.year 、p1.birth.month、p1.birth.day)

プリント(p1.course.name、p1.course.price、p1.course.period)
'' '
运行结果:
1つの27
パイソン28000 4ヶ月
'''
コードをコピー

場合クラス間の有意差は、小さい良好と組み合わせて、必要なクラスのより大きなクラスの構成要素であります

 

知人オブジェクト指向の概要

人間の定義

コードをコピー
クラスPerson:人間の#定義
    役割=「人」#文字属性は人々である

    DEF __init __(自己、名前、攻撃性、life_value、マネー):
        self.name名=#各文字は、独自のニックネームを持ち、
        自己.aggressivityは=攻撃性の#各文字は、独自の攻撃を持っています。
        self.life_value = life_value#各文字は、生命の独自の値を有し; 
        self.money =マネー

    DEF攻撃(自己、犬):
        人々の#は、犬を攻撃することができ、ここでは犬も対象です。
        #その後、犬の健康は、人々の攻撃力に基づいて減少され、犬を攻撃
= self.aggressivity - dog.life_valueを
 
 
コードをコピー

 

犬の定義

コードをコピー
クラス犬:#犬の定義
    役割を=「犬」#犬のキャラクターの属性は犬です

    DEFの__init __(自己、名前、品種、攻撃性、life_value):
        self.name =#名、各犬は独自のニックネームを持っています; 
        self.breedは=品種#各犬は、独自の品種を持っています。
        self.aggressivity =攻撃性の#各犬は独自の攻撃を持っています。
        self.life_value = life_value#各犬は生活の独自の価値を持っています; 

    DEF一口(セルフ、人):
        犬も対象です#犬は、かむことができます。
        #犬が人を噛む、その後、人間の生命の値は攻撃犬よる低下する
        people.life_valueを- = self.aggressivity
コードをコピー

 

次に、我々は武器の新しいクラスを作成しました。

コードをコピー
武器のクラス:
    __init __(自己、名前,.価格、aggrev、life_value)DEF:
        self.name名= 
        。self.price =価格
        self.aggrev = aggrev 
        self.life_value = life_value 

    DEF更新(自己、OBJ):#objテープにありますこの装置では、人々は
        obj.money -人々は減らすためにお金を相当お金を使うよう= self.price#はこの武器を使う
        人は、この機器が攻撃を増加させることができ持参obj.aggressivity + = self.aggrev番号を
        obj.life_value + =人々は、この機器を持参self.life_value#は人生の価値を高めることができ

    デフ(OBJ、自己を)刺す: #は、 これは、アクティブスキルの機器で、他の殺害
        obj.life_valueを- = 500#500は、その攻撃仮定であります
コードをコピー

 

インタラクティブテスト 

コードをコピー
ランス=武器( '槍'、200,6,100)
卵=人( 'エゴン'は、10,1000,600)#は、実在の人物卵作成
HA2 =犬( 'Erlengの子'、 'ハスキー' 10 、1000)#は、本物の犬のHA2の作成

「Erlengの子だった」深く難しい決断貧しい生活の節約が武器を買うために、戦いに一人で#eggを
もしegg.money> lance.price:#もし機器よりも卵のお金価格以上、あなたは槍購入することができ
    槍自己防衛を買うためにお金を費やすし、プロパティ自体が改善されました#egg lance.update(卵を)
    やりにegg.weapon =ランス#egg機器を

プリント(egg.money、 egg.life_value、egg.aggressivity)

プリント(ha2.life_value)
egg.attack(HA2)についてのヒットHA2 #egg 
プリント(ha2.life_value)
egg.weapon.prick(HA2)#武器やスキル起動する
プリントを(ha2.life_valueを) #のHA2は、血中トラフ半分空、勝つために狡猾なヒトでの使用の武器のために失わ
コードをコピー

デザインクラスとオブジェクトの少し思考のこのラインによると、最終的にあなたはアーケードゲームを実現することができます。

おすすめ

転載: www.cnblogs.com/wukai66/p/11240732.html
おすすめ