我根据 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 指示),则不应更改它。
关于python - 用 C 编写的 Python 模块中的常量整数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42394104/