我根据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规定),则不应更改它.