Python原始碼學習 之資料型別

2021-08-26 03:10:27 字數 2180 閱讀 7931

根據manual中the standard type hierarchy一節的型別資訊,我們首先嘗試列出乙個表:

型別

物件類

pynone_type

pyobject

none

pybool_type

pylongobject

notimplemented

pyellipsis_type

pyobject

ellipsis

pylone_type

pylongobject

numbers.integral

numbers.number

pyfloat_type

numbers.real

pycomplex_type

numbers.complex

pyunicode_type

pyunicodeobject

strings

sequences

pytuple_type

tuples

pybytes_type

pybytesobject

bytes

pylist_type

lists

pybytearray_type

byte arrays

pyset_type

sets

setpytraceback_type

frozen sets

pydict_type

dictionaries

pyfunction_type

pyfunctionobject

使用者自定義函式

callable types

pyinstancemethod_type

pyinstancemethodobject

例項的方法

生成器函式

pycfunction_type

pycfunctionobject

內建函式

內建方法

類類例項

pymodule_type

modules

custom class

class instances

i/o objects

pycode_type

code objects

internal types

pyframe_type

frame objects

pytraceback_type

traceback objects

pyslice_type

pysliceobject

slice objects

pystaticmethod_type

staticmethod

static method objects

pyclassmethod_type

classmethod

class method objects

剛開始接觸這個東西,很多地方還不了解,以至於這個簡單的**都無法補全(留待以後慢慢完善)

這些都是結構體pytypeobject的例項,以pylong_type為例:

pyapi_data(pytypeobject) pylong_type;

pytypeobject pylong_type = ;

pytypeobject pytype_type = {

pyvarobject_head_init(&pytype_type, 0)

"type", /* tp_name */

sizeof(pyheaptypeobject), /* tp_basicsize */

sizeof(pymemberdef), /* tp_itemsize */

(destructor)type_dealloc, /* tp_dealloc */

...

>>> type(0l)

>>> type(long)

>>> type(type)

Python原始碼學習 之資料型別

根據manual中the standard type hierarchy一節的型別資訊,我們首先嘗試列出乙個表 型別 物件類 pynone type pyobject none pybool type pylongobject notimplemented pyellipsis type pyobj...

Python原始碼學習 之bytecode

原始碼 py檔案 或 字串 位元組碼 可快取在 pyc 結果 pythonx.dll libpythonx.x.a pythonx.dll libpythonx.x.a py compilestring pyeval eval compile eval 中通過import使用到的.py檔案會自動編譯...

Python原始碼學習 之 Python直譯器

include 公有 標頭檔案 lib python編寫的模組 modules c實現的模組 objects 內建物件型別的實現 pc windows下構建python的工程檔案 pcbuild parser 直譯器的 parser tokenizer input handling python 直...