我正在用c++编写一个项目,并使用cython将c++代码转换为python模块。我计划使用一个单例设计模板来存储和隐藏一个数据库。此外,我还打算使用静态成员函数与这个隐藏的数据库进行接口。有人知道这种设计方法在Cython中是否可行吗?另外,是否有更好的编码策略/模板?
发布于 2014-02-02 05:16:56
静态成员函数的思想不起作用。但是,可以在c++中生成单例,而不是将单例与cython连接到python中。我的git集线器(https://github.com/drzeus99/cython-singleton)显示了我使用的代码。
通过对这段代码的测试,我发现您绝对需要为c++单例使用指针。此外,您需要一个公共删除方法,因此当python退出时,c++单例将被删除。在用cython(.pyx)代码构建和实现.pyx单例时,还需要在python中实现单例,并在python实现中存储已实现的c++单例。的原因是c++单例只在c++级别生成单例,但是在生成新的python时,c++代码并不强制作为单例。如果在python中生成两个c++单例对象而不是删除,则会导致内存问题。程序突然崩溃。
https://stackoverflow.com/questions/21472484
复制相似问题