根據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 直...