python - 用 C 编写的 Python 模块中的常量整数属性

标签 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__,但是这个函数在赋值时没有被调用。

有解决办法吗?

最佳答案

您不能像在 C(++) 中那样在 Python 中定义模块级“常量”。 Python 的方式是期望每个人都像负责任的成年人一样行事。如果某些内容全部大写且带有下划线(如 PEP 8 指示),则不应更改它。

关于python - 用 C 编写的 Python 模块中的常量整数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42394104/

相关文章:

python - 如何让 Keras 仅对验证数据计算某个指标?

python 不同模块的类继承

python - 如何将字符串转换为变量名?

在cgi中调用路由-n

C、struct的第一个成员

javascript - 为什么 visual studio 代码会添加破坏我的 nodejs 程序的导入语句?

python - 如何使用列表值对字典进行排序?

python - 从 Pivot reshape 和选择 Pandas

python - Python方式不打印错误消息

c - 使用 C 中的函数进行输入验证