標籤:property 記錄 工具箱 經典
介紹
學習記錄。。。。
目錄:
-
物件導向進階文法部分
經典類 新式類類的特殊成員反射
類
欄位
普通欄位 屬於對象, 執行個體變數,存在每個執行個體裡面,進行執行個體的時候,開闢一個執行個體對象,
靜態欄位 屬於類,類變數, 記憶體中存在類裡面,沒執行個體化,也存在。
方法
class Animal: def __init__(self,name): self.name=name hobbie = ‘meat‘ @classmethod ##類方法,不能訪問執行個體變數 def talk(self): print("{} is talking".format(self.hobbie)) @staticmethod ##靜態方法,不能訪問類變數 和執行個體變數,大多情況不用,類的工具箱 def walk(): print(" is talking") @property ##屬性,下面就不是方法了,變成了一個屬性,但是依然可以訪問執行個體和類變數 def habit(self): print("{} habit is xxoo".format(self.name))d = Animal("Hequan")Animal.talk()d.talk()d.walk()d.habitmeat is talkingmeat is talking is talkingHequan habit is xxoo
私人屬性 __
self.__num=num
經典類: 深度有限
新式類:廣度優先
類的特殊成員
-
__doc__ 列印注釋
-
__module__ 表示當前操作的對象在那個模組
-
__class__ 表示當前操作的對象的類是什麼
-
__init__ 構造方法,通過類建立對象時,自動觸發執行
-
__del__ 析構方法,當對象在記憶體中被釋放時,自動觸發執行。執行完成後,統一銷毀。
-
__call__ 對象後面加括弧,觸發執行
-
__dict__ 查看類或對象中的所有成員、
-
__new__ \ __metaclass__ 類的產生 調用 順序依次是 __new__ --> __call__ --> __init__
反射
通過字串映射或修改程式運行時的狀態、屬性、方法
-
hasattr
-
getattr
-
setattr
-
delattr
if __name__=="__main__":
server = WebServer(‘localhost‘,3306)
if hasattr(server,sys.argv[1]):
func = getattr(server,sys.argv[1]) ##擷取執行後面加的值 如 start
func()
本文出自 “何全” 部落格,請務必保留此出處http://hequan.blog.51cto.com/5701886/1886936
Python--day7--物件導向編程進階