我根据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__
,但在分配时不调用此函数。
有解决方案吗?
答案 0 :(得分:6)
您无法定义模块级别"常量"在Python中,就像在C(++)中一样。 Python的方式是期望每个人都像负责任的成年人一样行事。如果所有大写字母都带有下划线(如PEP 8指示),则不应该更改。