日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python基础教程:对象之间的交互

發布時間:2025/3/20 python 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础教程:对象之间的交互 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

對象之間的交互

現在我們已經有一個人類了,通過給人類一些具體的屬性我們就可以拿到一個實實在在的人。

現在我們要再創建一個狗類,狗就不能打人了,只能咬人,所以我們給狗一個bite方法。

有了狗類,我們還要實例化一只實實在在的狗出來。

然后人和狗就可以打架了。現在我們就來讓他們打一架吧!

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) #創造了一只實實在在的狗ha2 print(ha2.life_value) #看看ha2的生命值 egg.attack(ha2) #egg打了ha2一下 print(ha2.life_value) #ha2掉了10點血

面向對象的組合用法

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

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' 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 = radiusdef area(self):return pi * self.radius * self.radiusdef 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=yearself.month=monthself.day=dayclass Couse:def __init__(self,name,price,period):self.name=nameself.price=priceself.period=periodclass Teacher:def __init__(self,name,gender,birth,course):self.name=name self.gender=genderself.birth=birthself.course=coursedef 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基础教程:对象之间的交互的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。