[Python] 動態類型的實現

來源:互聯網
上載者:User

大多數編譯型語言,變數在使用前必須先聲明,其中的 C 語言更加苛刻:變數聲明必須位於代碼塊最開始,且在任何其他語句之前。其它語言,像C++和Java,允許“隨時隨地”聲明變數,比如,變數聲明可以在代碼塊的中間,不過仍然必須在變數被使用前聲明變數的名字和類型。

在Python 中,無需此類顯式變數聲明語句,變數在第一次被賦值時自動聲明,Python 中不但變數名無需事先聲明,而且也無需型別宣告。Python 語言中,對象的類型和記憶體佔用都是運行時確定的。儘管代碼被編譯成位元組碼,Python 仍然是一種解釋型語言。在建立--也就是賦值時,解譯器會根據文法和右側的運算元來決定新對象的類型。在對象建立後,一個該對象的引用會被賦值給左側的變數。

 

a = 3print a3a = 'abc'print aabc

垃圾收集器

 

從上面可以看出,變數時引用,Object Storage Service在記憶體中,一個對象可能有0個或多個變數引用它,但沒有變數引用該對象時,該對象無法訪問,垃圾收集器就可以在適當的時候回收該對象,以釋放記憶體。Python的垃圾收集器和Java的很類似。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.