python源码精要(5)-C代码规范
生活随笔
收集整理的這篇文章主要介紹了
python源码精要(5)-C代码规范
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對公共函數使用Py前綴;決不用于靜態函數。
Py_前綴是為全局服務例程保留的,比如Py_FatalError;
特定的例程組(例如特定的對象類型api)使用較長的前綴,例如對字符串函數使用PyString_。
公共函數和變量使用帶有下劃線的MixedCase,如下所示:
PyObject_GetAttr、Py_BuildValue、PyExc_TypeError。
偶爾一個“內部”函數必須是可見的加載程序;我們使用_Py前綴,例如:_PyObject_Dump。
宏應該有一個混合大小寫的前綴,然后使用大寫,例如:PyString_AS_STRING, Py_PRINT_RAW。
文檔字符串
使用docstring的PyDoc_STR()或PyDoc_STRVAR()宏來構建python不用docstrings支持。(./configure --without-doc-strings)
對于需要支持2.3以上版本的Python的C代碼,你可以在包含Python.h之后包含這個:
#ifndef PyDoc_STR #define PyDoc_VAR(name) static char name[] #define PyDoc_STR(str) (str) #define PyDoc_STRVAR(name, str) PyDoc_VAR(name) = PyDoc_STR(str) #endif每個函數docstring的第一行應該是一個“簽名行”,給出參數和返回值的簡短概要。例如:
PyDoc_STRVAR(myfunction__doc__, "myfunction(name, value) -> bool\n\n\ Determine whether name and value make a valid pair.");總結
以上是生活随笔為你收集整理的python源码精要(5)-C代码规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lambda表达式或者匿名函数中为什么要
- 下一篇: python源码精要(6)-CPytho