Python 物件導向的組合用法

2022-05-08 15:00:10 字數 2006 閱讀 1230

乙個類中以另乙個類的物件作為資料屬性(乙個類中引用另乙個類的物件)

一種 "有" 的關係:

比如:定義 1個人類 & 1個**類 然後 張三 有 槍 李四 有 刀

from math import pi

class circle:

'''定義了乙個圓形類;

提供計算面積(area)和周長(perimeter)的方法

'''def __init__(self,radius):

self.radius = radius

def area(self):

return pi * self.radius * self.radius

def perimeter(self):

return 2 * pi *self.radius

circle = circle(10) #例項化乙個圓

area1 = circle.area() #計算圓面積

per1 = circle.perimeter() #計算圓周長

print(area1,per1) #列印圓面積和周長

############################

class ring:

'''定義了乙個圓環類

提供圓環的面積和周長的方法

'''def __init__(self,radius_outside,radius_inside):

self.outsid_circle = circle(radius_outside) #*****直接在乙個類中生成另乙個類的物件(也可以引數直接傳入乙個類的物件)

self.inside_circle = circle(radius_inside)

def area(self):

return self.outsid_circle.area() - self.inside_circle.area()

def perimeter(self):

return self.outsid_circle.perimeter() + self.inside_circle.perimeter()

ring = ring(10,5) #例項化乙個環形

print(ring.perimeter()) #計算環形的周長

print(ring.area()) #計算環形的面積

class birthdate:

def __init__(self,year,month,day):

self.year=year

self.month=month

self.day=day

class couse:

def __init__(self,name,price,period):

self.name=name

self.price=price

self.period=period

class teacher:

def __init__(self,name,gender,birth,course):

self.name=name

self.gender=gender

self.birth=birth

self.course=course

def teach(self):

print('teaching')

p1=teacher('周','male',

birthdate('1995','1','27'), #傳進去的是物件

couse('python','28000','8 months')

)print(p1.birth.year,p1.birth.month,p1.birth.day)

print(p1.course.name,p1.course.price,p1.course.period)

python物件導向的組合用法

的重複利用除了繼承還有另外的一種方式,就是 組合 組合 在乙個類中以另外乙個類的對我峽谷作為資料屬性,稱為類的組合 例如 計算圓環的面積 最開始 我們不使用組合 from math import pi class circle def init self,r self.r r def circle ...

物件導向的組合用法

類的組合 乙個類中以另乙個類的物件作為資料屬性 例1.人裝備 class weapon def prick self,obj 這是該裝備的主動技能,扎死對方 obj.life value 500 假設攻擊力是500 class person 定義乙個人類 role person 人的角色屬性都是人 ...

VLOOKUP IF 組合用法

這是vlookup的逆序查詢的經典用法。vlookup只能在首列搜尋,返回指定列的資料,上面的公式是搜尋列不在第一列的,因此利用if的陣列用法,將a列和b列進行 調序 if b1 b7,a1 a7 if的資料用法,當條件為1時,返回第乙個結果b1 b7 當條件為0時,返回第二個結果a1 a7。這裡兩...