類(lèi),class,用來(lái)描述具有相同的屬性和方法的對(duì)象的集合。它定義了該集合中每個(gè)對(duì)象所共有的屬性和方法。對(duì)象是類(lèi)的實(shí)例。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的浉河網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
函數(shù),是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫作用戶(hù)自定義函數(shù)。
python語(yǔ)言中類(lèi)和函數(shù)的區(qū)別
1、規(guī)則不同
類(lèi)是一種引用數(shù)據(jù)類(lèi)型,類(lèi)似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類(lèi)型;
函數(shù)必須聲明后才可以被調(diào)用,調(diào)用格式為:函數(shù)名(實(shí)參)調(diào)用時(shí)函數(shù)名后的小括號(hào)中的實(shí)參必須和聲明函數(shù)時(shí)的函數(shù)括號(hào)中的形參個(gè)數(shù)相同。
2、主體不同
類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)現(xiàn)信息封裝的基礎(chǔ);
函數(shù)是指一段在一起的、可以做某一件事的子程序。
3、特點(diǎn)不同
類(lèi)是一種用戶(hù)定義的引用數(shù)據(jù)類(lèi)型,也稱(chēng)類(lèi)類(lèi)型,每個(gè)類(lèi)包含數(shù)據(jù)說(shuō)明和一組操作數(shù)據(jù)或者傳遞消息的函數(shù),類(lèi)的實(shí)例稱(chēng)為對(duì)象;
函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù),在類(lèi)中還可以定義構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、成員函數(shù)、友元函數(shù)、運(yùn)算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。
函數(shù)是一個(gè)模塊,為了完成一個(gè)特定功能的
類(lèi)是一個(gè)對(duì)象,可以包含屬性和方法,功能更強(qiáng)大
額,類(lèi)主要是為了數(shù)據(jù)封裝,隱藏細(xì)節(jié),再加上類(lèi)對(duì)多態(tài),繼承的支持,可以更好地運(yùn)用設(shè)計(jì)模式等設(shè)計(jì)方法。
例子嘛。。。
你說(shuō)的應(yīng)該是函數(shù)式編程和面向?qū)ο缶幊痰膮^(qū)別~~~
就像c語(yǔ)言和c++的區(qū)別一樣~
使用c也可以做面向?qū)ο缶幊蹋热缃Y(jié)構(gòu)體中封裝數(shù)據(jù),使用函數(shù)指針?lè)庋b方法,但是這種“偽裝”有時(shí)候并不直觀(guān)~~ 所以才有從語(yǔ)法層面支持面向?qū)ο蟮恼Z(yǔ)言~~
不知道我說(shuō)沒(méi)說(shuō)到點(diǎn)子上。
詳細(xì)的來(lái)說(shuō),如果只是簡(jiǎn)單的腳本,過(guò)程式?jīng)]問(wèn)題~~
但是如果是復(fù)雜的系統(tǒng),比如萬(wàn)行以上的系統(tǒng),不使用面向?qū)ο蟮脑O(shè)計(jì)方法,是很容易失控的~~
優(yōu)點(diǎn):可以保存狀態(tài)
缺點(diǎn):可以保存狀態(tài)
解釋?zhuān)?/p>
如果不能保存狀態(tài),那么每次調(diào)用函數(shù)時(shí),你都不得不把相關(guān)信息通過(guò)參數(shù)傳遞過(guò)來(lái),麻煩并且在參數(shù)多時(shí)容易出錯(cuò)。
當(dāng)一個(gè)東西包含狀態(tài),意味著很多操作會(huì)帶有修改其內(nèi)部狀態(tài)的副作用。當(dāng)項(xiàng)目管理不善時(shí),某些對(duì)象的內(nèi)部狀態(tài)可能多且關(guān)系錯(cuò)綜復(fù)雜,會(huì)給維護(hù)和調(diào)試帶來(lái)極大的復(fù)雜度。也就是稍微改一下,很多東西就出奇怪的問(wèn)題。
另一方面,將邏輯、算法與狀態(tài)綁定,會(huì)使其不夠靈活。比如用著用著,你有多種狀態(tài)都需要同一種處理邏輯,這時(shí)候再把邏輯和算法從類(lèi)里抽出來(lái)就麻煩了。
當(dāng)然也有純數(shù)據(jù)的不可變的類(lèi),比如各種 named tuple、datetime 之類(lèi)的(函數(shù)本身就是個(gè)類(lèi))。函數(shù)里也可以通過(guò)操作閉包或者全局變量來(lái)保存狀態(tài)。我只是說(shuō)普通用戶(hù)所遇到的大部分情況。
推薦策略:舉棋不定時(shí)聽(tīng) pylint 的話(huà)。