基本上,说我的C扩展名中有一些全局变量foo,像这样设置为3的初始值:
int foo = 3;
并且说在函数调用foobar中foo的值更改为4:
int foobar() {
foo = 4;
return 0;
}
如果我在C扩展上再次调用,则foo的值是否重置为3,或者foo的值是否在函数调用之间保持不变并保持4?
似乎foo将继续存在是有道理的,但我认为安全比后悔好。
一个共享对象或dll在每个python进程中加载一次(除非您有关闭重新打开C扩展名的显式代码)
因此全局变量和静态变量将持续一个进程。 (及其线程)