偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Python編程語言在創(chuàng)始人眼中的前景

開發(fā) 后端
Python編程語言具有很廣泛的應用中有不少的東西需要大家詳細的去學習。但是首先我們要來了解下有關于Python編程語言創(chuàng)始人的相關信息。

Python之父Guido Rossum對于Python編程語言的看法是什么樣的呢?這個問題只有他自己才能告訴我們,在Python的世界里,對象有著奇妙的“含義”。下面我們就看看如何才能更好的使用Python編程語言。

C視角中的Python對象

讓我們一起追溯到源頭,Python由C語言實現(xiàn),且向外提供了C的AP。

我們思考問題的時候,可能對于對象這種東西很容易理解,而計算機能理解的只有0,1序列這樣的字節(jié)序列,從根本上講,我們所說的計算機語言中的對象只是在內存中的一塊內存空間里的0,1序列而已,這些連續(xù)或者非連續(xù)的內存空間在更高層次上可以看作是一個整體.在Python中,我們所提到的一般的對象都是C中的結構體在堆Heap上申請的一塊內存空間。

為了能夠用C語言實現(xiàn)Python的面向對象的機制,需要定義一些結構體,能夠操作那些對象的內存空間。

1.PyObject&PyVarObject

所有的Python對象都有一些共同的東西,我們將其高度抽象成一個結構體PyObject。以下是引用片段:

  1. typedef struct _object{   
  2. PyObject_HEAD   
  3. } PyObject;   
  4. //其實PyObject_HEAD這個宏在發(fā)行版本中的為   
  5. int ob_refcnt;   
  6. struct _typeobject *ob_type;  

ob_refcnt,就是對象引用計數(shù),它的存在是為了實現(xiàn)了Python的基于引用技術的垃圾回收機制。還有一個是指向一個類型對象結構體的指針,用以代表該對象的類型.

在C語言的實現(xiàn)的時候,還有一個結構體擴展于PyObject,那便是PyVarObject,其內容為PyObject_VAR_HEAD這個宏,它比PyObject多了一個ob_size,用來表示變長對象的長度。#t#

還有一點請大家不要搞混,這里的PyObject和PyVarObject和Python世界中的真實對象沒有對應關系,這兩個只是Python對象全體在C語言表示中的一種抽象.也就是說在C語言中,只要是一個Python對象結構體的數(shù)據(jù),那么其內存的開始部分都會有上面結構體的幾個變量,所以一個PyObject的指針便可以指向所有的C語言中的表示Python對象的結構體,這樣在C語言的實現(xiàn)中,我們便可以通過這個統(tǒng)一的指針操作所有的內置的Python對象結構體了。

2.PyTypeObject
 
剛剛還有一個東西沒有講,那便是_typeobject(PyTypeObject)這個結構體,它是Python中所有類型對象的抽象,這樣我們在C語言的層次里對于所有的類型對象結構體都可以通過PyTypeObject的指針來調用。以下是引用片段:

  1. typedef struct _typeobject {   
  2. //注意開始部分為PyObject_VAR_HEAD   
  3. PyObject_VAR_HEAD   
  4. char *tp_name; /* For printing, in format   
  5. "<module>.<name>" */   
  6. int tp_basicsize, tp_itemsize;   
  7. /* For allocation */   
  8. /* Methods to implement standard operations */   
  9. destructor tp_dealloc; printfunc tp_print;   
  10. …… /* More standard operations (here for   
  11. binary compatibility) */   
  12. hashfunc tp_hash;   
  13. ternaryfunc tp_call;   
  14. …… }   
  15. PyTypeObject;  

以上就是對于Python編程語言在基礎上的介紹。希望大家有所收獲。

【編輯推薦】

  1. Python編程版面在應用過程中的功能介紹
  2. Python編輯器收藏的具體方案介紹
  3. Python統(tǒng)計如何進行DNA序列整理
  4. python 定時器具體的使用代碼介紹
  5. 簡介Python程序的校園網(wǎng)的認證方法
責任編輯:張浩 來源: CSDN
相關推薦

2015-05-19 14:34:17

程序員編程語言

2019-04-28 10:48:35

PythonJava編程語言

2011-12-22 10:18:28

Marc Andree軟件發(fā)展

2009-05-20 09:41:10

2020-04-01 14:51:03

語言RubyJava

2010-05-04 16:22:45

Unix系統(tǒng)

2013-08-05 10:57:21

編程學習

2019-11-01 10:59:15

Python開發(fā)書箱

2009-12-22 02:48:23

COBOL語言Grace Hoppe編譯語言

2013-04-08 10:38:00

2012-06-14 16:21:24

LinuxLinus Torva

2022-12-06 07:18:56

DedeCMS創(chuàng)始人林學

2010-10-11 10:21:49

Flipboard移動開發(fā)

2010-03-17 09:42:39

Twitter創(chuàng)始人

2012-04-10 17:40:49

Instagram創(chuàng)業(yè)

2015-05-18 14:39:23

MySQL開源OpenStack

2013-04-23 10:00:45

創(chuàng)業(yè)創(chuàng)始人

2009-12-22 02:13:47

Hibernate創(chuàng)始Gavin King

2013-03-14 09:11:15

AndroidChromeChrome OS

2009-12-09 13:53:32

PostgreSQLMySQL
點贊
收藏

51CTO技術棧公眾號