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