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

我根据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__,但在赋值时不调用此函数.

有解决方案吗?

解决方法:

您不能像在C()中那样在Python中定义模块级别“常量”. Python的方式是期望每个人都像负责任的成年人一样行事.如果所有大写字母都带有下划线(如PEP 8规定),则不应更改它.

上一篇:java – 提取大量的String文字是个好主意吗?


下一篇:java – JTabbedPane:如果堆叠/ Nimbus,则避免自动重新排序选项卡