類 物件空間,組合

2022-03-17 06:25:30 字數 2379 閱讀 1588

job1 = '

teacher

'class

a: home = '

老男孩教育

'name = '武大'

def__init__

(self, name, age):

self.name =name

self.age =age

defjob(self):

print('

我在開車.....')

查詢順序

物件的查詢順序:先從物件空間去找,物件的空間沒有此變數或者方法,通過物件中的類物件指標去類中尋找.

obj1 = a('

oldboy

',1000)

obj1 = a('

oldboy

',1000)

obj1 = a('

oldboy

',1000)

obj1 = a('

oldboy

',1000)

print

(obj1.name)

print

(obj1.job)

print

(obj1.home)

類的查詢順序: 直接從類本身找.

print(a.name)

# 物件的問題

# 無論建立多少物件,都是開闢獨立的空間,各個物件之間不能互相查詢,干擾.

# obj1 = a('oldboy',1000)

# obj2 = a('alex',10000)

#

計算乙個類例項化多少個物件

#class a:

#home = '老男孩教育'

#name = '武大'

#count = 0

#def __init__(self, name, age):

#a.count = a.count + 1

#self.name = name

#self.age = age

#def job(self):

#print('我在開車.....')##

obj1 = a('alex1',1000)

#obj2 = a('alex2',1000)

#obj3 = a('alex3',1000)

#obj4 = a('alex4',1000)

#print(a.count)

#

組合: 給乙個類的物件,封裝乙個屬性,這個屬性是另乙個類的物件.

class

game_role:

def__init__

(self, name, ad, hp):

self.name =name

self.ad =ad

self.hp =hp

defattack(self,obj1):

obj1.hp = obj1.hp -self.ad

print('

%s攻擊%s,%s掉了%s血,還剩%s血

'%(self.name,obj1.name,obj1.name,self.ad,obj1.hp))

defpackage_weapon(self,wea):

self.weapon =wea

class

sword:

def__init__

(self,name,ad):

self.name =name

self.ad =ad

deffight(self,p1,p2):

p2.hp = p2.hp -self.ad

print('

%s 用 %s 砍了 %s一刀,%s 還剩%s血

' %(p1.name,self.name,p2.name,p2.name,p2.hp))

#aduan = game_role('啊段', 10, 100)

#ts = game_role('泰森', 120, 300)

#slaughter_knife = sword('殺豬刀',200)

#這麼寫不好,動作的發起人是人而不是刀本身

#slaughter_knife.fight(aduan,ts)

#下面是符合邏輯的

#aduan.package_weapon(slaughter_knife) # 給aduan 這個物件封裝了乙個weapon屬性這個屬性值為slaughter_knife

#aduan.weapon.fight(aduan,ts)

#ts.attack(aduan)

#print(aduan.weapon)

#print(aduan.weapon.name)

#aduan.weapon.fight(aduan,ts)

類與物件之組合

第二大題 基於圓形類實現乙個圓環類,要求接收引數 外圓半徑和內圓半徑 完成方法 計算環形面積和環形周長 公式自己上網查 radius半徑 acreage面積 要求,借助組合,要求組合圓形類的物件完成需求 circular ring圓環 perimeter周長 from math import pi ...

物件導向 類的組合

組合 將乙個類的物件封裝到另乙個類的物件的屬性中 乙個類的物件是另乙個類的物件的屬性 就叫組合 例如 圓形類的物件是圓環類物件的 outer 屬性的值 計算圓形相關資料的公式只和 circle 類在一起 其餘的用到公式的地方都是通過 circle 類來使用的 公式與其他類之間的關係是乙個 松耦合 的...

物件導向 類組合還是類繼承?

類組 合 還 是 類繼 承?假設 我 們 有一 張 表a,有多個畫面用到。比如10個畫面用到。由於每個畫面功能不一 樣 但a表的大多數字段所以欄位都是共用的。這 種情況下,怎麼寫自己的info 類 呢?大概有3種方案 方案1 每個畫面都寫乙個自己的info類 方案2 先寫乙個表a的info類 然後每...