Centos7/Debian 配置雙網絡卡
阿新 • • 發佈:2020-09-18
有關類的一些知識
因為python 的類的情況比起C++簡單了很多,這裡就只說一下有些需要注意的事情
-
私有與公有成員
__init__ 或者__xxx__ 是系統特殊成員(前後兩條下劃線) _xxx 是保護成員(前面一條下劃線) __xxx 是私有成員,不能通過例項來訪問(前面兩條下劃線) 呼叫私有成員是要使用裝飾器 @property
-
裝飾器
-
類方法 ( @classmethod )
Python中允許宣告屬於類本身的方法,即類方法。不對特定例項進行操作,不能訪問物件的例項變數,第一個引數必須是類物件本身,通常為cls,但在呼叫時不需要也不用給該函式傳值
-
靜態方法 (@staticmethod)
python 允許宣告與類的物件例項無關的方法,稱為靜態方法,靜態方法不對特定例項進行操作,在靜態方法中訪問物件例項會導致錯誤。可通過類名訪問也可通過物件的例項化
-
-
繼承和多型
在繼承中,子類要在括號內宣告父類,父類的定義在子類其前面。在初始化過程中,子類不會自動呼叫父類的init
class Car: price = 30000 # 類變數 def __init__(self, name): self.__name = name # 成員私有變數 self.color = '' def setcolor(self, color): self.color = color # 類方法 @classmethod def getPrice(cls): print(cls.price) # 靜態方法 @staticmethod def setPrice(price): Car.price = price # 私有 @property def name(self): return self.__name class ECar(Car): def __init__(self, name): super().__init__(name) self.battery_size = 300 def getEcar(self): print('我是電動車' + self.name + '電容' + str(self.battery_size)) a=Car('寶馬') b=ECar('賓士') # 類方法 a.getPrice() # 靜態方法 b.setPrice('10000') b.getPrice() a.getPrice() # 私有 print(a.name) b.getEcar()