這篇文章主要講解了“Python里有多少種對象”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python里有多少種對象”吧!

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),北海街道企業(yè)網(wǎng)站建設(shè),北海街道品牌網(wǎng)站建設(shè),網(wǎng)站定制,北海街道網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,北海街道網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
首先說一下Python中的對象從哪來的。
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt;
PyTypeObject *ob_type;
} PyObject;Python的底層用c語言寫的,所以正統(tǒng)的Python其實叫做CPython。在Windows安裝Python時候,肯定會有個叫python.exe的程序(其他系統(tǒng)也類似),是專門用來解釋執(zhí)行Python代碼的。在這里的Python代碼最終轉(zhuǎn)為了c代碼。c代碼里面有個 PyObject結(jié)構(gòu)體。
這個結(jié)構(gòu)體有意思了,主要包含倆功能,一個是引用計數(shù)是回收垃圾用的,另一個是個指針,指向“type object”,用來根據(jù)不同類型的代碼轉(zhuǎn)接到不同的c函數(shù)。其實這里就是所謂對象的起源了,因為這里的type其實會和python代碼定義的不同對象類型來個對應(yīng)的檢查,檢查通過了就去執(zhí)行對應(yīng)的函數(shù)了,更具體說就是去內(nèi)存里找對應(yīng)的數(shù)據(jù)進行處理。比如Python代碼傳過來一個列表a,這個a最終到c語言里就會通過PyList_Check(a) 檢查是不是定義好的list這個type,然后就去做對應(yīng)操作了。
#define PyList_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS)對于學(xué)習(xí)編程認(rèn)為面向?qū)ο蠛茈y的同學(xué),其實可以想開點,這不過是python與c語言互相串通,定義好的數(shù)據(jù)交換規(guī)則罷了。只是這里面雜七雜八的規(guī)則有點多,咱們以后慢慢聊。你可以提前收藏網(wǎng)頁de8ug.vip,關(guān)注最新進展。
接下來就是配合七夕的表演了,我們來數(shù)數(shù)Python里面有多少種對象。
剛才我們聊到Python對應(yīng)的c語言里有個type,可以理解為類型的意思。擴展到Python里面,會經(jīng)常出現(xiàn)一個詞兒叫做object type。顧名思義,不同的對象其實就是不同的類型,我們生活中各種物品都分門別類,想用代碼來處理,那么就在代碼里面也給他們分門別類,這樣計算起來好算,存儲起來也好存。
至于Python里面有多少種對象,可以從重要的幾種內(nèi)置類型說起。這些內(nèi)容主要在官方文檔的stdtypes章節(jié)。
Python里面的最重要的內(nèi)置類型有 numerics, sequences, mappings, classes, instances and exceptions。翻譯成普通話就是數(shù)字,序列,映射,類,實例,異常。如果你要長期寫代碼,還是直接記住英文名字比較好。
int
float
complex
首先是Numeric Types,支持int, float, complex(整數(shù),浮點數(shù),復(fù)數(shù))三種數(shù)據(jù)。這個很好理解了,我們從小接觸數(shù)學(xué),進行各種計算都離不開各種數(shù)學(xué)數(shù)字。
list
tuple
range
str
Binary Sequence Types - bytes, bytearray, memoryview
Set Types — set, frozenset
接下來是Sequence Types,即序列類型,其中l(wèi)ist, tuple, range是很常見的表示序列的類型,然后有個更常用的關(guān)于字符文本等的序列被單拿出來為str,計算機中的內(nèi)部世界二進制的序列最為常見,所以序列類型還有Binary Sequence Types,其中又包括bytes, bytearray, memoryview。
序列里面還有個比較特殊的就是集合set,主要用于尋找不重復(fù)的元素和進行數(shù)學(xué)集合運算。
提到序列類型,就要出現(xiàn)迭代器Iterator和生成器Generator了,他們對于從序列中尋找某一個元素非常重要。
在數(shù)據(jù)結(jié)構(gòu)中,映射類型是非常重要的一種。在各種編程語言里用途也非常多,這也是DE8UG個人非常喜歡的一種。Python里的映射類型就是字典dict了。在做各種開發(fā)時,這種數(shù)據(jù)結(jié)構(gòu)用途非常廣泛,讓我們能很方便地存儲有對應(yīng)關(guān)系的數(shù)據(jù)并快速查找需要的元素。
Modules
Classes and Class Instances
Functions
Methods
Code Objects
Type Objects
The Null Object
The Ellipsis Object
The NotImplemented Object
Boolean Values
Internal Objects
接下來就是大量的其他類型了。小到Boolean,null,大到一個class,一個module,真的可謂是處處都是對象了。看到這么多的objects沒必要驚慌,根據(jù)自己的學(xué)習(xí)進度和使用需要,遇到不同的對象,仔細查看ta對應(yīng)的屬性和方法就好。
感謝各位的閱讀,以上就是“Python里有多少種對象”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python里有多少種對象這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
名稱欄目:Python里有多少種對象
網(wǎng)站鏈接:http://www.chinadenli.net/article28/gicgcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、建站公司、微信小程序、動態(tài)網(wǎng)站、App開發(fā)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)