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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20180724 (面向对象:类的命名空间和查询顺序丶组合)

發布時間:2025/6/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20180724 (面向对象:类的命名空间和查询顺序丶组合) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.類的名稱空間

類名() ?產生了一個含有對象指針的空間

先執行代碼 從上向下執行?

首先執行到class的時候,創建了一個Person類的空間,其中有靜態變量和方法以及方法的內存地址

之后執行到p1 = Person()的時候,又創建了一個p1的實例空間,當還沒讀到括號里面的參數的時候,此時該實例空間里只有一個指示牌是指向Person類空間的

當執行到括號里面的內容的時候,此時實例空間里多了country = "菲律賓",name = "alex",age = 42,height = 175

?

查詢順序: ?對象.屬性:先從對象(實例)空間里面找,如果找不到,再從類的空間里面找,再找不到,到父類里面找

     ? 類名.屬性:先從本類空間里面找,如果找不到,就到父類找

?

對象與對象之間是相互獨立的

例如:

  如圖代碼.如果p1下面有添加了一行代碼(p2 = Person("美國","wusir","男",38,180)) ? ? ?則當程序執行到p2的時候就又創建了一個p2的實例空間,與p1是相互獨立的,但都有一個指示牌,指向類Person空間

?

例如:

  計算一個類,實例化多少個對象

  class Person:

    count = 0

    def __init__(self):

      Person.count = Person.count(self.count 在這里是引用) + 1

    p1 = Person()

    p2 = Person()

    p3 = Person()

    Person.count = 6 ? ? ? ? ? ? ? ? ? ?======>通過類名可以更改我的類中的靜態變量,但是通過對象,不能改變只能引用類中的靜態變量

    print(Person.count)

二.組合 ? ?(給一個類的對象封裝一個屬性,這個屬性是另一個類的對象)

例如:

  class Person:

    def __init__(self,name,ad,hp):

      self.name = name

      self.ad = ad

      self.hp = hp

    def attack(self,p):

      p.hp = p.hp - self.ad

      print("%s攻擊了%s,%s掉了%s血,還剩%s血" % (self.name,p.name,p.name,self.ad,p.hp))

    def wuqi(self,wea):

      self.wea = wea

  class Weapons:

    def __init__(self,name,ad):

      self.name = name

      self.ad = ad

    def fight(self,p1,p2):

      p2.hp = p2.hp - self.ad

      print("%s拿%s攻擊了%s,%s掉了%s血,還剩%s血" % (p1.name,self.name,p2.name,p2.name,self.ad,p2.hp))

  p1 = Person("蓋倫",20,150)

  p2 = Person("提莫",50,100)

  w1 = Weapons("斧子",50)

  w2 = Weapons("雙節棍",80)

  p1.attack(p2) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?===========>蓋倫攻擊了提莫,提莫掉了20血,還剩80血

  p1.wuqi(w1)

  p1.wea.fight(p1,p2) ? ? ? ? ? ? ? ? ? ? ? ? ? =======>蓋倫拿斧子攻擊了提莫,提莫掉了50血,還剩30血

?

轉載于:https://www.cnblogs.com/lhy979/p/9362007.html

總結

以上是生活随笔為你收集整理的20180724 (面向对象:类的命名空间和查询顺序丶组合)的全部內容,希望文章能夠幫你解決所遇到的問題。

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