Python面向对象编程(二)
生活随笔
收集整理的這篇文章主要介紹了
Python面向对象编程(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第17,18個:面向對象三大特性之多態
?? ?
第19,20,21個:類成員之靜態字段和普通字段
?? ?
字段位置及訪問規則范例:
第22,23個:類成員之普通方法和靜態方法以及類
?? ?
方法:
?? ?所有的方法屬于類
?? ?1、普通方法:至少一個self,對象執行
?? ?2、靜態方法:任意參數, 類執行(萬不得已才可使用對象訪問)
?? ?3、類方法:至少有一個cls,類執行(萬不得已才可使用對象訪問)
?? ?
第24,25,26個:類成員之屬性
?
屬性:
具有方法的寫作形式,具有字段的訪問形式
具體方法里做什么都是自己定義的
-----------------------------------------
屬性即可以 獲取 又可以 設置 還可以 刪除!
第一種形式(比較少見):
?
第二種形式(比較常見):
1 class pager: 2 def __init__(self,all_count): 3 self.all_count = all_count 4 5 def f1(self): 6 return 123 7 def f2(self,value): 8 print(value) 9 def f3(self): 10 print(1234) 11 12 foo = property(fget=f1,fset=f2,fdel=f3) 13 14 p = pager(100) 15 print(p.foo) #對應著fget=f1 16 p.foo = "han" #對應著fget=f2 17 del p.foo #對應著fget=f3?
第27個:類成員之成員修飾符
成員:字段、方法、屬性
兩種修飾符:一種私有(只能在類內部訪問)
一種公有
公有修飾符:
1 class foo: 2 def __init__(self,name): 3 self.name = name 4 5 def f1(self): 6 print(self.name) 7 8 p = foo("hk") 9 #共有的兩種形式: 10 #print(p.name) #1在類的外部直接調用 11 print(p.f1()) #2在類的外部通過方法間接的調用私有修飾符:
1 class foo: 2 def __init__(self,name): 3 self.__name = name #創建一個私有的字段 4 5 def f1(self): 6 print(self.__name) #私有的字段 7 8 p = foo("hk") 9 print(p.f1()) #私有的字段只能在類的內部調用,通過f1方法調用# print(p._foo__name) #私有的成員修飾符也可以訪問,不到萬不得已不用!!!
存在類的繼承,父類的私有子類是無法獲取的。
1 class foo: 2 def __init__(self,name): 3 self.__name = name #創建一個私有的字段 4 5 def f1(self): 6 print(self.__name) #私有的字段 7 8 class bar(foo): 9 def f2(self): 10 print(self.__name) 11 12 obj = bar("han") 13 obj.f2() #存在類的繼承,私有的成員修飾符也是不可以的。?
1 class foo: 2 __cc = 123 #靜態字段 3 def __init__(self,name): 4 self.name = name 5 def f1(self): 6 print(self.name) 7 return 135 8 def f2(self): 9 print(foo.__cc) #類名 . 靜態字段 10 ''' 11 @staticmethod #靜態方法 12 def f3(): 13 print(foo.__cc) 14 foo.f3() 15 ''' 16 obj = foo('han') 17 print(obj.f2()) #對象執行f2的方法,私有的成員修飾符在類中可以找到并執行?
轉載于:https://www.cnblogs.com/hanxiaobei/p/5751414.html
總結
以上是生活随笔為你收集整理的Python面向对象编程(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 知识梳理——CSS篇
- 下一篇: python 学习笔记十九 django