面向?qū)ο缶幊袒A Day 8
學習計劃:
- spyder的tutorial
- day8的內(nèi)容
- PEP 8中的語法規(guī)范召嘶,續(xù)行再看一遍
- day7 的綜合實例
- 返回day 1解決問題
學習內(nèi)容:
對于python
用自己的語言敘述一遍今天所學的
- 面向?qū)ο缶幊谈拍?
-
什么是對象兑徘,什么是類甸陌,兩者的聯(lián)系與區(qū)別
對象是類的實例刃麸,類是對象的模板靶衍,就如下圖中類四邊形添加了屬性(對邊平行)就形成了一個對象沦辙,當然這只是初步理解夫植,有些細節(jié)還沒有提到。
- 程序中的數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)是一個邏輯上的整體油讯,稱之為對象详民,具有相同行為的對象可抽象為類。同一類的對象具有相同的靜態(tài)特征(屬性)和動態(tài)特征(行為)
-
- 舉例說明:
class Student(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def score(self, score):
print('學生的成績是', score)
定義了一個
Student
類陌兑,屬性是name
(名字)和gender
(性別)沈跨,行為是score()
(輸出學生的成績)object
是什么呢?這里就要提到類的三大支柱——封裝兔综、繼承饿凛、多態(tài),而object就是輸入其他類的名字的參數(shù)软驰,即object
是一個參數(shù)涧窒,他的值是其他類的名字(現(xiàn)在看來是這樣的,待明天繼續(xù)學習后锭亏,再做添加)__init__
是什么呢纠吴?為什么跟其他的函數(shù)不一樣,這里就要提到python里面的魔法方法
據(jù)說慧瘤,Python 的對象天生擁有一些神奇的方法戴已,它們總被雙下劃線所包圍,他們是面向?qū)ο蟮?Python 的一切锅减。
他們是可以給你的類增加魔力的特殊方法糖儡,如果你的對象實現(xiàn)(重載)了這些方法中的某一個,那么這個方法就會在特殊的情況下被 Python 所調(diào)用怔匣,你可以定義自己想要的行為握联,而這一切都是自動發(fā)生的。
Python 的魔術方法非常強大劫狠,然而隨之而來的則是責任拴疤。了解正確的方法去使用非常重要!詳細解釋
那我這個才入門的小學雞對魔法方法的初步了解就是——他不用輸入函數(shù)名進行調(diào)用函數(shù)独泞,一切都是在使用類時自動發(fā)生的呐矾,就如__init__
,可作為對象的初始化懦砂,不用直接調(diào)用__init__
蜒犯,只需輸入student1=Student('hilary', '女')
,即可為student1
進行初始化
- 私有成員组橄,受保護的成員,公有成員罚随,
我在C++語言中被這些個成員搞得昏頭昏腦玉工,一會兒不能訪問啦,一會兒友類又可以訪問啦淘菩,完全搞不清楚遵班,現(xiàn)在好啦,python中對私有潮改,公有沒有明確劃定狭郑,把一切成員都當作公有成員,方便程序員的共享.- 當然如果確實有些成員需要私有化汇在,可以如下定義
def __score(self):
在名字前加上__
翰萨,但其實悄悄地說,這些所謂的私有成員還是可以訪問,可采取student1._Student__score(100)
進行訪問糕殉,換言之亩鬼,并沒有不能調(diào)用的私有成員,python鼓勵程序的共享阿蝶,也因此要求程序員對自己所說的話負責雳锋。 -
self._name
中的單下劃線表示該成員受保護,訪問需慎重赡磅,但僅僅只是表示魄缚,并不會對操作有影響 - 這里,再強調(diào)一下焚廊,魔法方法如
__init__
不是私有成員,雖然他前面有標志性小杠~
詳細見《Python - 那些年我們踩過的那些坑》
- 當然如果確實有些成員需要私有化汇在,可以如下定義
- 類的封裝习劫,如果把類比作黑盒子咆瘟,那么數(shù)據(jù)和對數(shù)據(jù)的操作就是黑盒子里面我們不能接觸的東西,而我們可以通過它們與外界的接口诽里,即函數(shù)的名字和要傳入的操作袒餐,進行消息的傳遞。
隱藏一切可以隱藏的實現(xiàn)細節(jié)谤狡,只向外界暴露(提供)簡單的編程接口
對于spyder
- 查看文件灸眼。當打開一系列文件在編輯器上方時,有兩種方法快速找到所需的文件
- 單擊文件最左邊的符號
Browse Tabs
,顯示所有文件以及對應路徑 -
Ctrl-P
或者Ctrl-Tab
得到列出已打開文件的表格 墓懂,順序是最常用的在前焰宣。
- 單擊文件最左邊的符號
- 變量查看器的用法
- 雙擊變量名可改變值
- 雙擊類名,可跳出列表捕仔,顯示類中的成員匕积,可修改盈罐,非常方便,如果沒有找到已經(jīng)定義的類名闪唆,單擊變量查看器窗口右上角的設置選項盅粪,取消
exclude unsupported data types
(不包含不支持的數(shù)據(jù)類型)這一項,(最開始我竟然看成了include悄蕾,迷糊了好久票顾,英語啊英語啊)
對python說的話:
我用在你的時間越來越多了帆调,把復習教資的時間都分了一些給你奠骄,對你的期待也越來越多了,也越來越害怕自己到頭來學無所獲贷帮,效率低下戚揭,總是擔憂是不是做少了,還是做多了無用功撵枢,因為我在走一條根本就不知道頭的路民晒,你的未來和我的未來都是不確定的,沒有什么最好的方法锄禽,也沒有什么省事的方法潜必,我們只能一步一步走扎實,我相信前方會有金色的大門為我打開沃但。光明一直都在磁滚,沒有什么值得抱怨。
未做的事
- 上傳代碼們
- day7綜合案例還有兩個