一切都是對象,一切都是指針,一切都是東西(python的編程哲學)


 終於把1000多頁的python學習手冊啃完了。從來沒有從深層次上去理解一門編程語言,學習c是如此,學習java也是如此。總覺得這些語言就是拿來用的。不用管它為什么要創造出來。

這幾天認真系統的學習了python語言,泯泯之中和python的作者有點神交。

 

我的感受:

說python起源於c,一點都不過分。而且,處處是指針,處處是對象。不得不佩服作者的創造力,自己曾經也被c語言的指針整的焦頭爛額。能不用就不不碰,那內存崩潰是剛剛的。沒想象,python的作者把c語言的指針整這么溜,甚至發展成為一門編程語言,還集成在各種Linux系統中。

現在發現,不能用c語言的思路去理解python語言了。網上很多c#和python的比較,但是我要說的是,這兩種語言設計思路從最核心,最底層的解決思路是不一樣的。c#更像java。而python更像c。

看看,a =5 在c中是非常普通的賦值,我們也通常把這個語句叫做賦值語句,但是在python中,這樣的理解就錯了。

我們分別查一下他們的內存地址,發現地址是一樣的,原來python把這語句看做是對象實例化的語句。就是把一個整數對象實例化變量為a,如果用c來寫的話,要 寫成:

a= new 5()

是不是很奇怪,一個類,或者對象是不可以用數字來命名的,但是作為對象實例化,或者類的實例化,問題就很好理解了。

可以a = 5,頁可以 a='aaa'等。而且這個時候,原來的a的地址回收了。這里的a又重新指向字符串的地址了。

說白了,並不是定義了一個變量,而是定義了一個指針:

c:  *a = 5

總而言之:python把一切數據,一切的一切都看作對象,在python中,沒有變量,只有指針,要說變量,也是指針變量。

 

啦啦啦啦啦啦啦啦啦啦……

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM