python self是什么意思,怎么使用?
一、python self
介紹
首先明確的是self只有在類的方法中才會有,獨立的函數(shù)或方法是不必帶有self的。self在定義類的方法時是必須有的,雖然在調(diào)用時不必傳入相應(yīng)的參數(shù)。
self名稱不是必須的,在python中self不是關(guān)鍵詞,你可以定義成a或b或其它名字都可以,但是約定成俗(為了和其他編程語言統(tǒng)一,減少理解難度),不要搞另類,大家會不明白的。
下例中將self改為myname一樣沒有錯誤:
class Person:
??? def _init_(myname,name):
??????? myname.name=name
??? def sayhello(myname):
??????? print ‘My name is:’,myname.name
p=Person(‘Bill’)
print p
self指的是類實例對象本身(注意:不是類本身)。
class Person:
??? def _init_(self,name):
??????? self.name=name
??? def sayhello(self):
??????? print ‘My name is:’,self.name
p=Person(‘Bill’)
print p
在上述例子中,self指向Person的實例p。 為什么不是指向類本身呢,如下例子:
class Person:
??? def _init_(self,name):
??????? self.name=name
??? def sayhello(self):
??????? print ‘My name is:’,self.name
p1=Person(‘Bill’)
p2 = Person(‘Apple’)
print p1
如果self指向類本身,那么當(dāng)有多個實例對象時,self指向哪一個呢?
總結(jié)
self在定義時需要定義,但是在調(diào)用時會自動傳入。
self的名字并不是規(guī)定死的,但是較好還是按照約定是用self
self總是指調(diào)用時的類的實例。
延伸閱讀:
二、編碼發(fā)展的歷史
在計算機歷史的早期,美國為代表的英語系國家主導(dǎo)了整個計算機行業(yè),26個英文字母組成了多樣的英語單詞、語句、文章。因此,較早的字符編碼規(guī)范是ASCII碼,一種8位即1個字節(jié)的編碼規(guī)范,它可以涵蓋整個英語系的編碼需要。
編碼是什么?編碼就是把一個字符用一個二進制來表示。我們都知道,所有的東西,不管是英文、中文還是符號等等,最終存儲在磁盤上都是01010101這類東西。在計算機內(nèi)部,讀取和存儲數(shù)據(jù)歸根結(jié)底,處理的都是0和1組成的比特流。問題來了,人類看不懂這些比特流,如何讓這些010101對人類變得可讀呢?于是出現(xiàn)了字符編碼,它是個翻譯機,在計算機內(nèi)部某個地方,透明的幫我們將比特流翻譯成人類可以直接理解的文字。對于一般用戶,不需要知道這個過程是什么原理,是怎么執(zhí)行的。但是對于程序員卻是個必須搞清楚的問題。
以ASCII編碼為例,它規(guī)定1個字節(jié)8個比特位代表1個字符的編碼,也就是“00000000”這么寬,一個一個字節(jié)的解讀。例如:01000001表示大寫字母A,有時我們會“偷懶”的用65這個十進制來表示A在ASCII中的編碼。8個比特位,可以沒有重復(fù)的非常多表示2的8次方(255)個字符。
后來,計算機得到普及,中文、日文、韓文等等國家的文字需要在計算機內(nèi)表示,ASCII的255位遠(yuǎn)遠(yuǎn)不夠,于是標(biāo)準(zhǔn)組織制定出了叫做UNICODE的萬國碼,它規(guī)定任何一個字符(不管哪國的)至少以2個字節(jié)表示,可以更多。其中,英文字母就是用2個字節(jié),而漢字是3個字節(jié)。這個編碼雖然很好,滿足了所有人的要求,但是它不兼容ASCII,同時還占用較多的空間和內(nèi)存。因為,在計算機世界更多的字符是英文字母,明明可以1個字節(jié)就能夠表示,非要用2個。
于是UTF-8編碼應(yīng)運而生,它規(guī)定英文字母系列用1個字節(jié)表示,漢字用3個字節(jié)表示等等。因此,它兼容ASCII,可以解碼早期的文檔。UTF-8很快就得到了廣泛的應(yīng)用。
在編碼的發(fā)展歷程中,我國還創(chuàng)造了自己的編碼方式,例如GBK,GB2312,BIG5。他們只局限于在國內(nèi)使用,不被國外認(rèn)可。在GBK編碼中,中文漢字占2個字節(jié)。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
分析型數(shù)據(jù)庫是什么,和關(guān)系型數(shù)據(jù)庫有什么區(qū)別?
一、分析型數(shù)據(jù)庫分析型是從數(shù)據(jù)庫的作用來劃分的,其重點用來做數(shù)據(jù)分析(OLAP),大量都是select語句。還有一種是專門用來做事務(wù)處理的,一般...詳情>>
2023-10-17 23:26:16
python self是什么意思,怎么使用?
一、python self介紹首先明確的是self只有在類的方法中才會有,獨立的函數(shù)或方法是不必帶有self的。self在定義類的方法時是必須有的,雖然在調(diào)...詳情>>
2023-10-17 21:24:11
創(chuàng)建Project提交到Github需要做什么?
一、創(chuàng)建Project提交到Github需要做什么1、在Github新建一個repository。2、打開編譯器,編輯最外面的.gitignore,如果沒有就新建一個這樣的文件...詳情>>
2023-10-17 20:23:50
C/S和B/S架構(gòu)的工作原理及優(yōu)缺點?
一、C/S架構(gòu)的工作原理C/S 架構(gòu)中客戶端和服務(wù)器之間通過網(wǎng)絡(luò)連接進行通信,客戶端發(fā)送請求后會等待服務(wù)器返回響應(yīng),直到收到響應(yīng)后才能顯示給...詳情>>
2023-10-17 19:43:01熱門推薦
Web前端開發(fā)是什么技術(shù)?
沸分析型數(shù)據(jù)庫是什么,和關(guān)系型數(shù)據(jù)庫有什么區(qū)別?
熱對數(shù)量龐大的照片進行分類管理,較好的方便檢索的方法是什么?
熱web前端會用到哪些軟件工具?
新Flash動畫制作的原理是什么?
java/Python這么火,c++這么難,為什么我們還要選擇用C++?
app開發(fā)的制作為什么報價和開發(fā)周期都不一樣?
python self是什么意思,怎么使用?
什么是SEO?
PHP中的interface有什么用處?
創(chuàng)建Project提交到Github需要做什么?
為什么SwiftUI用struct來表示view?
C/S和B/S架構(gòu)的工作原理及優(yōu)缺點?
Flash為什么被淘汰了?
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團隊
了解師資團隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線