Python 變量 ,對象,引用

動態(tài)類型

C,C++和Java是靜態(tài)編譯型語言,Python屬于動態(tài)類型的語言,類型實在運(yùn)行過程中自動決定的,而不是通過代碼聲明

變量,對象,引用

當(dāng)我們做如下操作時

>>> a = 3

實際分為三個步驟:

  • 創(chuàng)建一個對象來代表值3
  • 創(chuàng)建一個變量a,如果它還沒有創(chuàng)建的話
  • 將變量和新的對象3相連接

變量和對象保存在內(nèi)存中的不同部分,并通過連接相關(guān)聯(lián),變量總是連接到對象,并且絕不會連接到其他變量,但是更大的對象可能連接到其他的對象。

Python中從變量到對象的連接叫引用,以具體的術(shù)語來講:

  • 變量是一個系統(tǒng)表的元素,擁有指向?qū)ο蟮倪B接的空間
  • 對象是分配的一塊內(nèi)存,有 足夠的空間去表示它們所代表的值
  • 引用是自動形成的從變量到對象的指針

從技術(shù)來講,每個對象都有兩個標(biāo)準(zhǔn)的頭部信息:

  • 一個類型表示去標(biāo)識這個對象的類型
  • 一個引用的計數(shù)器,用來決定是不是回收這個對象

類型屬于對象,而不是變量

>>> a = 3
>>> a = 'Frank'
>>> a = 3.14

變量名沒有類型,類型屬于對象,而不是變量名,我們并沒有改變變量a的類型,只是讓變量引用了不同的類型的對象而已,實際上,python的變量就是在特定的時間引用了一個特定的對象

對象的垃圾收集

>>> x = 42
>>> x = 'Google'   #Reclaim 42 now(unless referenced elsewhere)
>>> x = 3.14        #Reclaim 'Google' now

Python中的每一個對象保持了一個引用計數(shù)器,計數(shù)器記錄了當(dāng)前指向該對象的引用的數(shù)目,一旦這個計數(shù)器被設(shè)置為0,這個對象的內(nèi)存空間就會自動回收。
垃圾收集最直接、可感受到的好處就是,這意味著可以在腳本中任意使用對象而不需要考慮釋放內(nèi)存空間,在程序運(yùn)行時,Python將會清理那些不再使用的空間。實際上,與C和C++這樣的底層語言相比,省去了大量的基礎(chǔ)代碼。

共享引用

>>> a = 128
>>> b = a
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,807評論 11 349
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,804評論 1 118
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,423評論 6 13
  • 上大學(xué)時有個人對我影響很深遠(yuǎn),那是我哥哥的朋友,具體叫什么名字我忘了。他從我哥那得知我手機(jī)號后主動打電話找我聊天,...
    妄想先生閱讀 1,610評論 0 1
  • 有些人無論在怎么去接觸,,哪怕多了再多的交集,不喜歡還是不喜歡,,有時也會想著要去嘗試接觸,可是漸漸在這段路上你會...
    如風(fēng)一般的女子閱讀 203評論 0 0

友情鏈接更多精彩內(nèi)容