Skip to Content
Python 技術手冊 第三版
book

Python 技術手冊 第三版

by lex Martelli, Anna Martelli Ravenscroft, Steve Holden
January 2018
Intermediate to advanced content levelIntermediate to advanced
856 pages
17h 17m
Chinese
GoTop Information, Inc.
Content preview from Python 技術手冊 第三版
Python C API 擴充 Python
|
755
欄位
tp_flags
是一個
long
,其位元決定了你型別結構(type struct)的
確切布局(layout),主要是為了回溯相容性。將此欄位設為
Py_TPFLAGS_
DEFAULT
來表示你正在定義一個正常的現代型別。如果你的型別支援環狀
廢物回收(cyclic garbage collection),就將
tp_flags
設為
Py_TPFLAGS_
DEFAULT|Py_TPFLAGS_HAVE_GC
。如果你型別的實體含有的
PyObject*
欄位可
能指向任意的物件並形成參考迴圈(reference loop)的一部分,那麼你的
型別就應該支援環狀廢物回收。要支援環狀廢物回收,新增
Py_TPFLAGS_
HAVE_GC
到欄位
tp_flags
是不夠的,你還必須提供適當的函式,由插
tp_traverse
tp_clear
表示,並以環狀廢物回收器(cyclic garbage
collector)適當地註冊或註銷你的實體。支援環狀廢物回收是進階的主
題,我們不會在本書中進一步涵蓋,請參閱線上說明文件(
https://docs.
python.org/3/c-api/gcsupport.html
)。同樣地,我們也不涵蓋支援弱參考
weak references)這種進階主題,線上說明文件已有涵蓋(
https://docs.
python.org/3/extending/newtypes.html#weakref-support
)。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

測試驅動開發|使用 Python

測試驅動開發|使用 Python

Harry J.W. Percival
Linux 内核观测技术BPF

Linux 内核观测技术BPF

David Calavera, Lorenzo Fontana

Publisher Resources

ISBN: 9789864766819