類—–抽象 比如 房屋圖紙—是抽象的–乙個模板。所以我們在畫圖紙的時候,可以先設定好房子的結構,比如,有個窗戶,有個門
class
fangzi
(object):
def__init__
(self,window,door):
self.window=window
swlf.door=door
物件(類的例項化)—-根據圖紙建造出來的房子。因為我們的圖紙裡面規劃房子要有窗戶,門。所以我們建造出來的房子也帶有窗戶和門。但是我們可以根據自己的需要,給窗戶和門取名字。(比如甲根據這個圖紙建造了房子,那就是甲的房子可以把房子的窗戶叫做甲窗戶,甲門,而乙也根據圖紙建造了房子,可以叫作乙窗戶,乙門)
jia=fangzi('jiaw','jiad')
print jia.window
jiaw
print jia.door
jiad
yi=fangzi('yiw','yid')
print yi.winfow
yiwprint yi.door
yid
我們還可以給圖紙新增一些方法,比如開窗戶,開門
class
fangzi
(object):
def__init__
(self,window,door):
self.window=window
swlf.door=door
defopen
():print
'opendoor'
print
'openwindow'
jia=fangzi('jiaw','jiad')
jia.open()
opendoor
openwindow
和靜態語言不同,python允許對例項變數繫結任何資料,也就是說,對於兩個例項變數,雖然它們都是同乙個類的不同例項,但擁有的變數名稱都可能不同:
例如:
bart = student(『bart simpson』, 59)lisa = student(『lisa simpson』, 87)
bart.age = 8
bart.age
8 lisa.age
traceback (most recent call last):
file 「」, line 1, in
attributeerror: 『student』 object has no attribute 『age』
class
student
(object):
def__init__
(self, name, gender):
self.name = name
self.__gender = gender #外部無法直接訪問gender屬性
defget_gender
(self):
#通過該方法,可以讓外部訪問gender
return self.__gender
defset_gender
(self,gender):
self.__gender=gender
#通過該方法,可以讓外部修改gender屬性
bart = student('bart', 'male')
#傳入male,這時,gender被賦值為male,可通過bart.get_gender()訪問
bart.set_gender('female')
#修改gender為female
if bart.get_gender() != 'female':
#通過bart.get_gender()訪問,判斷gender是否被修改為female
print('loss!')
else:
print('sucess!')
self.__gender=gender 限制了gender被外部訪問和修改
def get_gender(self) 設定gender可被外部訪問
def set_gender(self,gender)設定了gender可被外部修改
這樣的好處是,可以對引數做檢查,避免傳入無效的引數
如下
class
student
():def
__init__
(self,name,scode):
self.name=name
self.__scode=scode
defget_scode
(self):
return self.__scode
defset_scode
(self,scode):if0
100:
self.__scode=scode
else:
raise valueerror('bad scode')
s=student('ming',80)
print s.get_scode()
s.set_scode(88)
print s.get_scode()
通過set_scode(self,scode)方法來設定成績期間,當輸入輸入不在0-100之間,就會報錯。 Python學習筆記(十五) 類基礎
以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 24 23 59 學習筆記 1,python中的大多數oop故事都可以簡化為乙個表示式 object.attribute 當類啟用時,為了找出attribute首次出現的地方...
Python學習筆記(十五) 類基礎
以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 24 23 59 學習筆記 1,python中的大多數oop故事都可以簡化為乙個表示式 object.attribute 當類啟用時,為了找出attribute首次出現的地方...
python 類class基礎簡明筆記
感謝莫煩老師 詳情class calculator 首字母要大寫,冒號不能缺 name good calculator 該行為class的屬性 price 18 def add self,x,y print self.name result x y print result def minus se...