国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python筆記:類和繼承

2019-11-14 17:33:23
字體:
來源:轉載
供稿:網友
  1. # -*- coding=  utf-8 -*-   
  2. # 文件編碼定義的語法規則是: coding[:=]/s*([-/w.]+)  
  3. # 未指定編碼將默認為 : ASCII  
  4. # 同時要注意物理文件的編碼也要符合本語言指定的編碼  
  5. # 更多可參考: http://python.org/dev/peps/pep-0263/  
  6. class CBase:   
  7.     '''''資源相關類'''     # 通過CBase.__doc__ 或者類實例.__doc__ 可以輸出此說明  
  8.     counter = 0;    # 這是屬于類的變量,相當于c++的靜態變量,公有  
  9.     __counter = 1;  # 變量前加雙下劃線,將被認為是私有變量  
  10.                     # 在類外不能訪問,否則認為是公有的變量  
  11.     #在Python 中的 __init__相當于C++的constructor,   
  12.     #在__init__中定義的是對象的變量,相當于c++的普通變量  
  13.     def __init__(self,name):    
  14.         self.name = name        # 普通對象變量,公有  
  15.         self.__PRivate1 = 2     # 私有普通變量,私有  
  16.         print('__init__ base')   
  17.           
  18.     # __del__ 相當于c++的destructor  
  19.     def __del__(self):        
  20.         print(' base destruct')  
  21.       
  22.     # 任何一個類方法必須至少有一個參數  
  23.     #   這個參數相當于C++的this指針  
  24.     #   這個參數必須是第一個參數  
  25.     #   約定通常寫作self  
  26.     def Help(self):             
  27.         '''''Help doc'''      # 方法的doc,引用語法 [類名|實例].方法名.__doc__  
  28.         print('---base help begin---/n',self.name)     # 在這兒引用類普通變量  
  29.         print(CBase.__counter) # 即便是本類的方法引用自己的靜態變量,  
  30.                                     # 也需要加類名或者self 限定  
  31.         print(self.__private1)  #私有變量只有本類方法有權限引用  
  32.         print('---base help end---/n')  
  33.           
  34.     def Test(self):  
  35.         print('Base Test')  
  36.       
  37.       
  38. # 類的繼承  
  39. # 可進行多重繼承,語法class CC(CA,CB)  
  40. class CHigh(CBase):   
  41.     def __init__(self):  
  42.         CBase.__init__(self,'high') # 調用基類的構造時,要手動傳入第一個參數  
  43.         print('__init__ high')  
  44.           
  45.     def __del__(self):  
  46.         #CBase.__del__(self), 基類的析構函數是不能調用的  
  47.         # 基類的析構的函數也不會被自動調用  
  48.         print(' High destruct')  
  49.           
  50.     # 繼承類的方法會覆蓋掉基類的同名方法  
  51.     def Test(self):  
  52.         print('High Test ')  
  53.       
  54.     # python沒有方法重載的概念  
  55.     # 源文件中最后一個定義的方法將會覆蓋掉之前的同名方法  
  56.     # 現在在調用Test,必須傳遞第二個參數name  
  57.     # 上面的具有一個參數的Test方法被覆蓋掉了.  
  58.     def Test(self,name):  
  59.         print('High Test have arg:',name)  
  60.           
  61. rh = CHigh()  
  62. #rh = CBase('hello')  
  63. rh.Help()  
  64. rh.Test();  
  65. print(CBase.counter)  
  66. print(rh.name)  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高邮市| 通许县| 洱源县| 玛纳斯县| 佳木斯市| 南开区| 芷江| 长汀县| 广元市| 陈巴尔虎旗| 遂溪县| 昭通市| 昌都县| 晋州市| 关岭| 天峨县| 怀远县| 沂南县| 疏勒县| 铜梁县| 嘉荫县| 山丹县| 肥东县| 凤冈县| 宣武区| 响水县| 石景山区| 莆田市| 白朗县| 海南省| 崇左市| 霍州市| 顺昌县| 喀什市| 西乡县| 新建县| 陈巴尔虎旗| 邵阳市| 高碑店市| 蛟河市| 宜兴市|