1.類和對象
在python中定義類
class 類名(首字母最好大寫)Student (Object(父類)):
def __init__(self):
self.屬性 1= 參數1
self.屬性2 = 參數2
變量 = Student(類名)
s.屬性1 = ‘字元串’
__init__是一個特殊的函數用來初始化對象
self執行目前類的執行個體化對象
2.通路限制
1)如果不想類中的參數不受限制地指派,可以在屬性的前面添加__(兩個雙劃線)來聲明屬性為private類型,不允許外部通路
2)如果希望通路呢,那麼就通過get方法和set方法來通路
例如:def get_name(self):
return self.__name
def set_name(self,name):
self.__name = name
3.繼承和多态
繼承就是繼承父類的所有特點,而且可以根據自己的情況,修改父類的方法
多态就是可以定義一個參數為父類類型的方法,最後傳入,子類對象參數,傳回适合子類的方法
4.動态語言就是不需要繼承那樣,隻需要有相同的方法就可以像鴨子一樣的走路的那種的“鴨子類型”
5.擷取對象資訊
1)判斷對象資訊可以通過type方法,以及函數的判斷類型導入import types 語句來通過types判斷函數的類型
2)可以通過isinstance()函數來判斷對象的類型,将父類以及子類“一網打盡”,還可以通過dir()來判斷屬性的所有資訊
3)可以通過hasattr()函數來判斷是否含有該屬性資訊,setattr()函數可以設定對象的屬性資訊,getattr()函數可以擷取對象的資訊
5.執行個體對象和類對象
1)執行個體對象會覆寫類對象
2)類對象資訊為整個類所共有
3)注意:不要将執行個體對象與類對象重名
6.slots
slots 就是用來設定對象的屬性個數的
7.@property
@property裝飾器是來簡化參數暴露問題的
1)可以通過設定@property以及屬性.setter來控制屬性的參數範圍以及一些規範
例如
@property
def birth(self):
return self._bitrth
@birth.setter
def birth(self,value):
if not instance(value,int):
rasie ValueErroe('value must be an Integer!')
elif(value<0)|(value>1000):
rasie ValueError('value must between0-1000!')
self._birth = value