摘要:南京現(xiàn)在算是我的一個(gè)治愈城市了,帶著重重的悲傷去,幸好落雪的瞬間將我治愈。年,世界和平,平安喜樂。繼承與多態(tài)繼承就是從現(xiàn)有的類進(jìn)行繼承,被繼承的為超類或者父類也就是爸爸,新的類為子類。
叨叨點(diǎn)啥
2018年的最后一天。
回顧這一年,獲得很多也失去很多。
今年去了很多的地方,成都,重慶,峨眉山,天津,杭州,南京。
杭州是我特別喜歡的城市,有很多美好的記憶,也有很多失落的時(shí)刻。
南京現(xiàn)在算是我的一個(gè)治愈城市了,帶著重重的悲傷去,幸好落雪的瞬間將我治愈。
今年努力回溫了很多次的這兩年,發(fā)現(xiàn)很多事情都在最早的時(shí)候就有預(yù)知,我可以努力做好的事情卻沒有做到,這就是為什么我會(huì)背負(fù)悲傷的原因。
2019年,要更加努力,想做到的事情就一定要做到。
然后祝福我愛的人,一切都好。
希望有緣,還能再度相見吧。
2019年,世界和平,平安喜樂。
認(rèn)真學(xué)習(xí)的分割恩今天的雞血針劑,還是用同一管吧~
每一個(gè)優(yōu)秀的人,都有一段沉默的時(shí)光。那一段時(shí)光,是付出了很多努力,忍受孤獨(dú)和寂寞,不抱怨,不訴苦,日后說起時(shí),連自己都能被感動(dòng)的日子。
面向?qū)ο笞钪匾母拍罹褪穷悾–lass)和實(shí)例(Instance),必須牢記類是抽象的模板,比如Student類,而實(shí)例是根據(jù)類創(chuàng)建出來的一個(gè)個(gè)具體的“對(duì)象”,每個(gè)對(duì)象都擁有相同的方法,但各自的數(shù)據(jù)可能不同。
class關(guān)鍵字來定義類。
定義好后就可以創(chuàng)建實(shí)例,然后后自由的給一個(gè)實(shí)例變量綁定屬性。
因?yàn)轭惪梢云鸬侥0宓淖饔?,所以在?chuàng)建實(shí)例的時(shí)候,可以綁定一些必要的屬性。用__init__方法。
class Student(object): def __init__(self, name, score): self.name = name self.score = score
注意到__init__方法的第一個(gè)參數(shù)永遠(yuǎn)是self,表示創(chuàng)建的實(shí)例本身,因此,在__init__方法內(nèi)部,就可以把各種屬性綁定到self,因?yàn)閟elf就指向創(chuàng)建的實(shí)例本身。數(shù)據(jù)封裝
訪問實(shí)例的數(shù)據(jù)的時(shí)候,因?yàn)閿?shù)據(jù)本身就屬于實(shí)例,所以就不需要外部數(shù)據(jù)去訪問。
在類的內(nèi)部定義好這些訪問數(shù)據(jù)的函數(shù),就可以“封裝”數(shù)據(jù)了——類的方法。
class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print("%s: %s" % (self.name, self.score)) bart = Student() bart.print_score() #自帶的函數(shù),調(diào)用的時(shí)候很方便,不需要知道內(nèi)部數(shù)據(jù)的定義訪問限制
為了讓內(nèi)部屬性不被外部訪問,就在屬性的名稱前__(2個(gè)下劃線),然后就變成了私有變量。
class Student(object): def __init__(self, name, score): self.__name = name self.__score = score def print_score(self): print("%s: %s" % (self.__name, self.__score))
這樣外部就不能訪問__name和__score了,因?yàn)橥獠看a不能隨意修改對(duì)象內(nèi)部的狀態(tài),代碼健壯多啦!
如果涉及到需要外部代碼修改或者訪問私有變量的話,可以在類里面增加方法。
這樣在傳參之前可以先做驗(yàn)證,保證傳入的參數(shù)可用。
需要注意的是,在Python中,變量名類似__xxx__的,也就是以雙下劃線開頭,并且以雙下劃線結(jié)尾的,是特殊變量,特殊變量是可以直接訪問的,不是private變量。繼承與多態(tài)有些時(shí)候,你會(huì)看到以一個(gè)下劃線開頭的實(shí)例變量名,比如_name,這樣的實(shí)例變量外部是可以訪問的,但是,按照約定俗成的規(guī)定,當(dāng)你看到這樣的變量時(shí),意思就是,“雖然我可以被訪問,但是,請把我視為私有變量,不要隨意訪問”。
繼承就是從現(xiàn)有的類進(jìn)行繼承,被繼承的為超類或者父類(Base class、Super class)(也就是爸爸),新的類為子類(Subclass)。
class Animal(object): def run(self): print("Animal is running....") #以下為兩個(gè)子類 class Dog(Animal): pass class Cat(Animal): pass
當(dāng)子類和父類都存在相同的方法的時(shí)候,子類的方法覆蓋了父類的,在代碼運(yùn)行的時(shí)候,總是會(huì)調(diào)用子類的方法,這就是多態(tài)。
在子類創(chuàng)建實(shí)例的時(shí)候,不僅具備了子類的數(shù)據(jù)類型,同樣也繼承了父類的數(shù)據(jù)類型,所以子類的實(shí)例可能存在多個(gè)數(shù)據(jù)類型。
但反過來的規(guī)則則不成立。
對(duì)于一個(gè)變量,我們只需要知道它是Animal類型,無需確切地知道它的子類型,就可以放心地調(diào)用run()方法,而具體調(diào)用的run()方法是作用在Animal、Dog、Cat還是Tortoise對(duì)象上,由運(yùn)行時(shí)該對(duì)象的確切類型決定,這就是多態(tài)真正的威力:調(diào)用方只管調(diào)用,不管細(xì)節(jié),而當(dāng)我們新增一種Animal的子類時(shí),只要確保run()方法編寫正確,不用管原來的代碼是如何調(diào)用的。這就是著名的“開閉”原則:靜態(tài)語言vs動(dòng)態(tài)語言
對(duì)擴(kuò)展開放:允許新增Animal子類;
對(duì)修改封閉:不需要修改依賴Animal類型的run_twice()等函數(shù)。
動(dòng)態(tài)語言的“鴨子類型”。
靜態(tài)語言不限制傳入的類型,只需要保證傳入的對(duì)象有相應(yīng)的方法即可。
Python的“file-like object“就是一種鴨子類型。
這個(gè)還蠻特別的...(碎碎念)
emmm....再次對(duì)標(biāo)題陷入沉思
了解對(duì)象是什么類型,有哪些方法的操作
使用type()
基本類型都可以用type()來判斷,包括變量指向函數(shù)或者類。
type()函數(shù)返回對(duì)應(yīng)的Class類型。
使用isinstance()
能用type()判斷的基本類型也可以用isinstance()判斷,并且還可以判斷一個(gè)變量是否是某些類型中的一種。
使用dir()
如果要獲得一個(gè)對(duì)象的所有屬性和方法,可以使用dir()函數(shù),它返回一個(gè)包含字符串的list。
祝大家新年快樂~~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42914.html
摘要:例如做累加,函數(shù)生成整數(shù)序列,函數(shù)轉(zhuǎn)換成。因?yàn)椴荒苤貜?fù),所以中沒有重復(fù)的。創(chuàng)建,需要提供一個(gè)作為輸入合集。重復(fù)元素在中自動(dòng)被過濾。添加元素,重復(fù)添加無效果刪除元素 寫在前面的一點(diǎn)羅里吧嗦小嘮叨昨晚的python看到了快12點(diǎn)吧,然后進(jìn)度相對(duì)來說還算滿意,只能說一點(diǎn)點(diǎn)推進(jìn),慶幸自己的大學(xué)還是一個(gè)比較認(rèn)真的小碼農(nóng),現(xiàn)在撿起來還算比較得心應(yīng)手(pia飛自己,算法什么的還沒到好嗎!)好好學(xué)習(xí)唄...
摘要:默認(rèn)參數(shù)設(shè)置默認(rèn)參數(shù)時(shí),有幾點(diǎn)要注意一是必選參數(shù)在前,默認(rèn)參數(shù)在后,否則的解釋器會(huì)報(bào)錯(cuò)二是如何設(shè)置默認(rèn)參數(shù)。注意此處,獲得的其實(shí)是的拷貝,函數(shù)內(nèi)對(duì)的改變不會(huì)影響到。使用遞歸函數(shù)需要注意防止棧溢出。 總是在最前面的叨逼叨 最近總是在想成長這兩個(gè)很常常被提起的事情,這對(duì)于一個(gè)已經(jīng)25歲的半中年而言,已經(jīng)是一個(gè)不太能高頻提起的詞。但是,最近一些事情吧,總讓我覺得我的生長期似乎比正常人來的晚了...
摘要:在拖完地板之后,想想還是補(bǔ)上今天的題解吧感謝小佳揚(yáng)推薦的題目,默默的復(fù)習(xí)了一把遞歸第一題難度中等實(shí)現(xiàn),即計(jì)算的次冪函數(shù)。因?yàn)槭谴蝺?,如果直接循環(huán),復(fù)雜度就是了。次冪可以拆解為的方式。每次拆解,最后最小的單位應(yīng)該為。 寫在前面 年前嘛,就是各種渙散的狀態(tài)。在拖完地板之后,想想還是補(bǔ)上今天的題解吧~感謝小佳揚(yáng)推薦的題目,默默的復(fù)習(xí)了一把遞歸~ 第一題 50. Pow(x, n)難度:中等 ...
摘要:前面的一些碎碎念兩天的耽擱,思考了下,雖然需要全面基礎(chǔ)的學(xué)習(xí),但是重點(diǎn)還是應(yīng)該放在實(shí)戰(zhàn)上。更簡潔的版本是如果文件很小,一次性讀取最方便如果不能確定文件大小,反復(fù)調(diào)用比較保險(xiǎn)如果是配置文件,調(diào)用最方便。 前面的一些碎碎念 兩天的耽擱,思考了下,雖然需要全面基礎(chǔ)的學(xué)習(xí),但是重點(diǎn)還是應(yīng)該放在實(shí)戰(zhàn)上。所以后續(xù)要速速的推倒這個(gè)教程了,用一些數(shù)據(jù)來實(shí)行一些分析:) 認(rèn)真學(xué)習(xí)的分割線 打打打打雞血!...
摘要:用匿名函數(shù)有個(gè)好處,因?yàn)楹瘮?shù)沒有名字,不必?fù)?dān)心函數(shù)名沖突。此外,匿名函數(shù)也是一個(gè)函數(shù)對(duì)象,也可以把匿名函數(shù)賦值給一個(gè)變量,再利用變量來調(diào)用該函數(shù)也可以把匿名函數(shù)作為返回值返回。 日常嘮嗑 最近對(duì)數(shù)據(jù)崗位看了不少,感覺經(jīng)驗(yàn)和技術(shù)都是很必要的門檻,要更加的努力啊。今天看了Alex大叔的2019年運(yùn),感覺真的是很需要變革的一年了。轉(zhuǎn)型和脫離舒適圈應(yīng)該是2019年比較重要的關(guān)鍵詞了。 show...
閱讀 2542·2021-10-11 10:58
閱讀 1020·2019-08-29 13:58
閱讀 1661·2019-08-26 13:32
閱讀 830·2019-08-26 10:40
閱讀 3256·2019-08-26 10:18
閱讀 1756·2019-08-23 14:18
閱讀 1106·2019-08-23 10:54
閱讀 435·2019-08-22 18:39