Python基礎系列講解 動態型別語言的特點

2021-09-24 19:55:18 字數 1036 閱讀 8443

前言

在c語言中變數所分配到的位址是記憶體空間中乙個固定的位置,當我們改變變數值時, 對應記憶體空間中的值也相應改變。在python中變數儲存的機制是完全不一樣的,當給乙個變數賦值時首先直譯器會給這個值分配記憶體空間,然後將變數指向這個值的位址,那麼當我們改變變數值的時候直譯器又會給新的值分配另乙個記憶體空間,再將變數指向這個新值的位址,所以和c語言相比,在python中改變的是變數所指向的位址,而記憶體空間中的值是固定不變的。

例程介紹 

我們可以通過id方法檢視變數的記憶體位址的方式來進行驗證。以下先以python的int型別為例,可以看到執行 i += 1 後,變數i的記憶體位址會發生變化,事實上 i += 1 並不是在原有變數i的位址上加1,而是重新建立乙個值為6的int物件,變數i則引用了這個新的物件,因此當變數i和變數j的值相同時會指向同個記憶體位址 。同樣以python的float 型別為例也驗證了這個變數儲存管理的機制。

#int i =5print"i ---> ",i print"id(i) ---> ",hex(id(i))i +=1print"i ---> ",i print"id(i) ---> ",hex(id(i))j =5print"j ---> ",j print"id(j) ---> ",hex(id(j))______________________ i --->5id(i)--->0xa26f880i --->6id(i)--->0xa26f874j --->5id(j)--->0xa26f880

#float i =1.5print"i ---> ",i print"id(i) ---> ",hex(id(i))i +=1print"i ---> ",i print"id(i) ---> ",hex(id(i))j =1.5print"j ---> ",j print"id(j) ---> ",hex(id(j))______________________ i --->1.5id(i)--->0x9e86c8ci --->2.5id(i)--->0x9e86cacj --->1.5id(j)--->0x9e86c8c

Python動態語言講解

python動態是在於在程式執行過程中可以動態的給類新增另外的屬性與方法,這個體現在前端給使用者某個介面功能的時候,可以通過動態的方式改變功能,從而就不用重新打包而生成另外的編譯檔案 動態新增方法p1 class defeat self print s 在吃 self.name p1.eat tpy...

由淺入深講解動態類函式指標

1 首先描述一下指標值的含義 假設記憶體值的序列是這樣描述的 我們定義乙個 0 50 的正整數序列。0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ...

Python 基礎講解(1)

使用一門語言,你首先得獲得與它互動方式,這是學習一門語言的開始。python語言基礎用法中,使用print 和input 進行輸出與資料讀入。1 字串及數值的輸出 字串即數值可以直接輸出 print 1 1 print hello world hello world2 變數的輸出 無論什麼型別,數值...