最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解python對象之間的交互

 更新時間:2020年09月29日 11:49:00   作者:清風(fēng)軟件測試  
這篇文章主要介紹了詳解python對象之間的交互,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

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

class 類名:
  def __init__(self,參數(shù)1,參數(shù)2):
    self.對象的屬性1 = 參數(shù)1
    self.對象的屬性2 = 參數(shù)2

  def 方法名(self):pass

  def 方法名2(self):pass

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

對象之間的交互

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

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):
    # 人可以攻擊狗,這里的狗也是一個對象。
    # 人攻擊狗,那么狗的生命值就會根據(jù)人的攻擊力而下降
    dog.life_value -= self.aggressivity

class 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):
    # 狗可以咬人,這里的狗也是一個對象。
    # 狗咬人,那么人的生命值就會根據(jù)狗的攻擊力而下降
    people.life_value -= self.aggressivity

egg = Person('egon',10,1000) #創(chuàng)造了一個實(shí)實(shí)在在的人eggprint(egg.name)        # 在obj.name會先從obj自己的名稱空間里找name,找不到則去類中找,類也找不到就找父類...最后都找不到就拋出異常
ha2 = Dog('二愣子','哈士奇',10,1000) #創(chuàng)造了一只實(shí)實(shí)在在的狗ha2
print(ha2.life_value)     #看看ha2的生命值
egg.attack(ha2)        #egg打了ha2一下
print(ha2.life_value)     #ha2掉了10點(diǎn)血

面向?qū)ο蟮慕M合用法

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

class Weapon:
  def prick(self, obj): # 這是該裝備的主動技能,扎死對方
    obj.life_value -= 500 # 假設(shè)攻擊力是500

class Person: # 定義一個人類
  role = 'person' # 人的角色屬性都是人

  def __init__(self, name):
    self.name = name # 每一個角色都有自己的昵稱;
    self.weapon = Weapon() # 給角色綁定一個武器;
    
egg = Person('egon')
egg.weapon.prick() 
#egg組合了一個武器的對象,可以直接egg.weapon來使用組合類中的所有方法

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

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) #實(shí)例化一個圓
area1 = circle.area() #計算圓面積
per1 = circle.perimeter() #計算圓周長
print(area1,per1) #打印圓面積和周長

class Ring:
  '''
  定義了一個圓環(huán)類
  提供圓環(huán)的面積和周長的方法
  '''
  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) #實(shí)例化一個環(huán)形
print(ring.perimeter()) #計算環(huán)形的周長
print(ring.area()) #計算環(huán)形的面積

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

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('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)
''' 
運(yùn)行結(jié)果: 
1995 1 27 
python 28000 4 months 
'''

以上就是詳解python對象之間的交互的詳細(xì)內(nèi)容,更多關(guān)于python 對象交互的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python2隨機(jī)數(shù)列生成器簡單實(shí)例

    Python2隨機(jī)數(shù)列生成器簡單實(shí)例

    這篇文章主要介紹了Python2隨機(jī)數(shù)列生成器,結(jié)合簡單實(shí)例形式分析了Python基于random模塊操作隨機(jī)數(shù)的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • 在Django中URL正則表達(dá)式匹配的方法

    在Django中URL正則表達(dá)式匹配的方法

    今天小編就為大家分享一篇在Django中URL正則表達(dá)式匹配的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python如何以表格形式打印輸出的方法示例

    python如何以表格形式打印輸出的方法示例

    這篇文章主要介紹了python如何以表格形式打印輸出的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 利用Python爬蟲爬取金融期貨數(shù)據(jù)的案例分析

    利用Python爬蟲爬取金融期貨數(shù)據(jù)的案例分析

    從技術(shù)角度來看,經(jīng)過一步步解析,任務(wù)是簡單的,入門requests爬蟲及入門pandas數(shù)據(jù)分析就可以完成,本文重點(diǎn)給大家介紹Python爬蟲爬取金融期貨數(shù)據(jù)的案例分析,感興趣的朋友一起看看吧
    2022-06-06
  • 在python中用print()輸出多個格式化參數(shù)的方法

    在python中用print()輸出多個格式化參數(shù)的方法

    今天小編就為大家分享一篇在python中用print()輸出多個格式化參數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python中str字符串的內(nèi)置方法詳解

    Python中str字符串的內(nèi)置方法詳解

    這篇文章主要介紹了Python中str字符串的內(nèi)置方法詳解,在?python?中字符串有許多內(nèi)置的方法,在日常編程中會經(jīng)常使用到,熟練運(yùn)用了能夠在很多場景大大的提高我們的工作效率,需要的朋友可以參考下
    2023-08-08
  • 多個python文件調(diào)用logging模塊報錯誤

    多個python文件調(diào)用logging模塊報錯誤

    這篇文章主要介紹了多個python文件調(diào)用logging模塊產(chǎn)生錯誤,需要的朋友可以參考下
    2020-02-02
  • Python實(shí)現(xiàn)base64編碼的圖片保存到本地功能示例

    Python實(shí)現(xiàn)base64編碼的圖片保存到本地功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)base64編碼的圖片保存到本地功能,涉及Python針對base64編碼解碼與圖形文件輸出保存相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python實(shí)現(xiàn)提取音樂頻譜的方法詳解

    Python實(shí)現(xiàn)提取音樂頻譜的方法詳解

    你有沒有經(jīng)常好奇一些音樂軟件的頻譜特效是怎么做的,為什么做的這么好看?有沒有想試試自己提取音樂頻譜并可視化展現(xiàn)出來?本文就來教你如何利用Python提取音樂頻譜,快來學(xué)習(xí)一下吧
    2022-06-06
  • VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解

    VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解

    這篇文章主要介紹了VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評論

汨罗市| 德阳市| 榆中县| 镇远县| 东宁县| 哈巴河县| 卢氏县| 济阳县| 丹江口市| 徐州市| 青冈县| 饶平县| 溧阳市| 涪陵区| 二连浩特市| 扶余县| 驻马店市| 雷波县| 兴义市| 徐汇区| 安徽省| 赤水市| 板桥市| 高州市| 华蓥市| 彭阳县| 万全县| 宁海县| 双柏县| 陈巴尔虎旗| 阿图什市| 垫江县| 衢州市| 福泉市| 新乡县| 英山县| 铅山县| 广州市| 平度市| 中宁县| 芜湖市|