国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

詳解python對象之間的交互

瀏覽:5日期:2022-07-09 14:05:18

先看看一般的類定義如下:

class 類名: def __init__(self,參數1,參數2): self.對象的屬性1 = 參數1 self.對象的屬性2 = 參數2 def 方法名(self):pass def 方法名2(self):pass對象名 = 類名(1,2) #對象就是實例,代表一個具體的東西 #類名() : 類名+括號就是實例化一個類,相當于調用了__init__方法 #括號里傳參數,參數不需要傳self,其他與init中的形參一一對應 #結果返回一個對象對象名.對象的屬性1 #查看對象的屬性,直接用 對象名.屬性名 即可對象名.方法名() #調用類中的方法,直接用 對象名.方法名() 即可

對象之間的交互

現在我們已經有一個人類了,通過給人類一些具體的屬性我們就可以拿到一個實實在在的人。現在我們要再創建一個狗類,狗就不能打人了,只能咬人,所以我們給狗一個bite方法。有了狗類,我們還要實例化一只實實在在的狗出來。然后人和狗就可以打架了?,F在我們就來讓他們打一架吧!

class Person: # 定義一個人類 role = ’person’ # 人的角色屬性都是人 def __init__(self, name, aggressivity, life_value): self.name = name # 每一個角色都有自己的昵稱; self.aggressivity = aggressivity # 每一個角色都有自己的攻擊力; self.life_value = life_value # 每一個角色都有自己的生命值; def attack(self,dog): # 人可以攻擊狗,這里的狗也是一個對象。 # 人攻擊狗,那么狗的生命值就會根據人的攻擊力而下降 dog.life_value -= self.aggressivityclass Dog: # 定義一個狗類 role = ’dog’ # 狗的角色屬性都是狗 def __init__(self, name, breed, aggressivity, life_value): self.name = name # 每一只狗都有自己的昵稱; self.breed = breed # 每一只狗都有自己的品種; self.aggressivity = aggressivity # 每一只狗都有自己的攻擊力; self.life_value = life_value # 每一只狗都有自己的生命值; def bite(self,people): # 狗可以咬人,這里的狗也是一個對象。 # 狗咬人,那么人的生命值就會根據狗的攻擊力而下降 people.life_value -= self.aggressivityegg = Person(’egon’,10,1000) #創造了一個實實在在的人eggprint(egg.name)# 在obj.name會先從obj自己的名稱空間里找name,找不到則去類中找,類也找不到就找父類...最后都找不到就拋出異常ha2 = Dog(’二愣子’,’哈士奇’,10,1000) #創造了一只實實在在的狗ha2print(ha2.life_value) #看看ha2的生命值egg.attack(ha2)#egg打了ha2一下print(ha2.life_value) #ha2掉了10點血

面向對象的組合用法

組合指的是,在一個類中以另外一個類的對象作為數據屬性,稱為類的組合

class Weapon: def prick(self, obj): # 這是該裝備的主動技能,扎死對方 obj.life_value -= 500 # 假設攻擊力是500class Person: # 定義一個人類 role = ’person’ # 人的角色屬性都是人 def __init__(self, name): self.name = name # 每一個角色都有自己的昵稱; self.weapon = Weapon() # 給角色綁定一個武器; egg = Person(’egon’)egg.weapon.prick() #egg組合了一個武器的對象,可以直接egg.weapon來使用組合類中的所有方法

圓環是由兩個圓組成的,圓環的面積是外面圓的面積減去內部圓的面積。圓環的周長是內部圓的周長加上外部圓的周長。這個時候,我們就首先實現一個圓形類,計算一個圓的周長和面積。然后在'環形類'中組合圓形的實例作為自己的屬性來用

from math import piclass 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.radiuscircle = 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()) #計算環形的面積

用組合的方式建立了類與組合的類之間的關系,它是一種‘有’的關系,比如教授有生日,教授教python課程

class BirthDate: def __init__(self,year,month,day): self.year=year self.month=month self.day=dayclass Couse: def __init__(self,name,price,period): self.name=name self.price=price self.period=periodclass 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(’egon’,’male’, BirthDate(’1995’,’1’,’27’), Couse(’python’,’28000’,’4 months’) ) print(p1.birth.year,p1.birth.month,p1.birth.day) print(p1.course.name,p1.course.price,p1.course.period)’’’ 運行結果: 1995 1 27 python 28000 4 months ’’’

以上就是詳解python對象之間的交互的詳細內容,更多關于python 對象交互的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 欧美中文字幕在线视频 | www.成人网 | 日韩一区二区免费看 | 精品国产夜色在线 | 欧美最爽乱淫视频播放黑人 | 国产特级全黄一级毛片不卡 | 亚洲国产午夜看片 | 国产成人艳妇在线观看 | 国产精品成人免费视频不卡 | 国产精品一区亚洲一区天堂 | 国产亚洲精品福利片 | 亚洲好视频| 韩国在线精品福利视频在线观看 | 国产美女精品视频 | 亚洲字幕 | 九九九九在线精品免费视频 | 亚洲第一区视频 | 亚洲欧美字幕 | 欧美视频在线网站 | 国产99视频免费精品是看6 | 国产在线视频专区 | 亚洲三级在线 | 欧美做爰性欧美 | 清纯偷拍精品视频在线观看 | 国产日韩欧美在线观看播放 | 美国特级毛片 | 亚洲欧洲日产国产 最新 | 欧美特级视频 | 青青爽国产手机在线观看免费 | 亚洲人成高清毛片 | 亚洲狠狠综合久久 | 一级毛片视频在线 | 色悠久久久久综合网伊人男男 | 久草在线视频在线 | 欧美私人网站 | 亚洲一区二区在线免费观看 | 成人人免费夜夜视频观看 | 欧美日本一区亚洲欧美一区 | 国产午夜不卡在线观看视频666 | av在线亚洲男人的天堂 | 亚洲第一免费视频 |