對象:實例化一個類以後獲得的對象
封裝
吧一些功能的實現細節不對外暴露
封裝
代碼的重用
繼承
組合
self.Person = Person(self,Person_obj)
吧Person實例化後的對象賦值給self.Person
單繼承
多繼承
2.7 經典類,深度優先 新式類,廣度優先
3.x 都是廣度優先
class Foo(object)
先覆蓋再繼承再添加本身的功能
def __init__(self,name,age,sex,salary)
super(Foo,self).__init__(name,age,sex)新式類繼承 若多繼承,先找到哪一個就執行哪一個
父類.__init__(self,name,age,sex) 經典類繼承 若多繼承得寫多個,可是隻執行先找到的那個父類
父類.__init__(self,name,age,sex) 經典類繼承 若多繼承得寫多個,可是隻執行先找到的那個父類
self.salary = salary
多態
接口的重用
靜態方法 只是名義上歸類管理 實際上在靜態方法裏訪問不了類或實例中的任何屬性
類方法 只能訪問類屬性,而不能訪問實例屬性
屬性方法 吧一個方法變成一個靜態屬性
1 什麼是反射python
反射的概念是由Smith在1982年首次提出的,主要是指程序能夠訪問、檢測和修改它自己狀態或行爲的一種能力(自省)。這一律唸的提出很快引起了計算機科學領域關於應用反射性的研究。它首先被程序語言的設計領域所採用,並在Lisp和麪向對象方面取得了成績。函數
2 python面向對象中的反射:經過字符串的形式操做對象相關的屬性。python中的一切事物都是對象(均可以使用反射)spa
四個能夠實現自省的函數設計
下列方法適用於類和對象(一切皆對象,類自己也是一個對象)對象
#反射
#經過字符串映射或修改程序運行時的狀態、屬性、方法,有如下4個方法
#getattr(object,name,default=None) #根據字符串去獲取obj對象裏的對應的方法的內存地址
#hasattr(object,name) #判斷一個對象裏是否有對應的字符串的方法映射
#setattr(x,y,v)
#delattr(x,y)