Python面對(duì)對(duì)象封裝
1.1 面向過程和面向?qū)ο?/b>
根據(jù)操作數(shù)據(jù)的函數(shù)或語句塊來設(shè)計(jì)程序的過程创葡,叫做面向過程編程呕寝。
與之相對(duì)應(yīng)的矿酵,如果把數(shù)據(jù)和功能結(jié)合起來,用稱為對(duì)象的東西包裹起來控漠,這種組織程序的方法稱為面向?qū)ο蟮木幊獭?/p>
面向?qū)ο蟮木幊桃话阌迷谏晕⒋笮偷捻?xiàng)目或者是要求更加合理的解決方案的場合柳琢,相對(duì)與面向過程的編程有優(yōu)勢。
1.2 面向?qū)ο蟮奶匦?/b>
面向?qū)ο蟮木幊逃腥齻€(gè)特性:封裝润脸、繼承和多態(tài),這里會(huì)分別作介紹他去。
1.3 類和對(duì)象
類就是一個(gè)新的毙驯、程序員自己根據(jù)需求定義的一個(gè)新的類型,而對(duì)象是這個(gè)類型的一個(gè)實(shí)例灾测。比如說爆价,定義了一個(gè)新的類型Person,然后用這個(gè)類型定義了一個(gè)變量tom媳搪,這里铭段,tom就是一個(gè)對(duì)象,而Person就是一個(gè)類秦爆。
2序愚、封裝
面向?qū)ο蟮某绦蛟O(shè)計(jì)中,某個(gè)類把所需要的數(shù)據(jù)(也可以說是類的屬性)和對(duì)數(shù)據(jù)的操作(也可以說是類的行為)全部都封裝在類中等限,分別稱為類的成員變量和方法(或成員函數(shù))爸吮。這種把成員變量和成員函數(shù)封裝在一起的編程特性稱為封裝。
2.1 類的屬性
類由屬性和方法組成望门,類的屬性是對(duì)數(shù)據(jù)的封裝形娇,而類的方法是對(duì)類的行為的封裝。
類的屬性按使用范圍分為共有屬性和私有屬性筹误。具體地桐早,在Python實(shí)現(xiàn)面向?qū)ο蟮木幊趟枷氲臅r(shí)候,封裝在類中的屬性可以分為兩種:數(shù)據(jù)類的屬性和數(shù)據(jù)對(duì)象的屬性(也可以成為數(shù)據(jù)類的成員變量和屬于對(duì)象的成員變量),其中哄酝,這兩種成員變量又各自分為共有成員變量和私有成員變量友存。
2.1.1 類的成員變量和對(duì)象的成員變量
類的成員變量定義在類中,和類的成員函數(shù)在同一縮進(jìn)等級(jí)炫七。而對(duì)象的成員變量定義在init(self)成員函數(shù)中爬立,和init(self)函數(shù)下的變量和語句在同一等級(jí)。
通俗地講万哪,類的成員變量屬于類侠驯,共類的所有對(duì)象和類本身所共有,也就是說所有的類的對(duì)象和類只有一份這樣的變量奕巍。
而對(duì)象的成員變量屬于類的對(duì)象本身吟策,每個(gè)對(duì)象都有一份,而且各個(gè)對(duì)象之間互不影響的止。
2.1.2 公有成員變量和私有成員變量
python中用成員變量的名字來區(qū)分是共有成員變量或者是私有成員變量檩坚。
python中,以兩個(gè)下劃線‘__’開頭的變量都是私有成員變量诅福,而其余的變量都屬于公有成員變量匾委。
其中,私有的成員變量只能在類的內(nèi)部訪問氓润,而共有的公有的成員變量可以在類的外部進(jìn)行訪問赂乐。