用C语言编写的Python模块中的常量整数属性

时间:2017-02-22 14:20:46

标签: python c module constants

我根据https://docs.python.org/3.3/extending/extending.html

在C中实现了一个python扩展模块

现在我希望在该模块中有整数常量,所以我做了:

module= PyModule_Create(&myModuleDef);
...
PyModule_AddIntConstant(module, "VAR1",1);
PyModule_AddIntConstant(module, "VAR2",2);
...
return module;

这很有效。但是我可以修改python中的“常量”,比如

import myModule
myModule.VAR1 = 10

我试图重载__setattr__,但在分配时不调用此函数。

有解决方案吗?

1 个答案:

答案 0 :(得分:6)

您无法定义模块级别"常量"在Python中,就像在C(++)中一样。 Python的方式是期望每个人都像负责任的成年人一样行事。如果所有大写字母都带有下划线(如PEP 8指示),则不应该更改。