この質問に対する簡単な答えを探していましたが、見つからないようです。Python 2.6/2.7 にまだ含まれていない外部ライブラリには近づかないようにしたいと思います。
次のような 2 つの c ヘッダー ファイルがあります。
//constants_a.h
const double constant1 = 2.25;
const double constant2 = -0.173;
const int constant3 = 13;
...
//constants_b.h
const double constant1 = 123.25;
const double constant2 = -0.12373;
const int constant3 = 14;
...
そして、これらの定数をインポートしたいpythonクラスがあります:
#pythonclass.py
class MyObject(object):
def __init(self, mode):
if mode is "a":
# import from constants_a.h, like:
# self.constant1 = constant1
# self.constant2 = constant2
elif mode is "b":
# import from constants_b.h, like:
# self.constant1 = constant1
# self.constant2 = constant2
...
定数も使用するcコードがあり、これに似ています:
//computations.c
#include <stdio.h>
#include <math.h>
#include "constants_a.h"
// do some calculations, blah blah blah
定数をヘッダー ファイルから Python クラスにインポートするにはどうすればよいですか?
ヘッダー ファイル constants_a.h および constants_b.h の理由は、定数を使用してほとんどの計算を行うために python を使用しているためですが、ある時点で、より最適化された計算を行うために C を使用する必要があります。この時点で、ctypes を使用して c コードを Python にラップしています。定数を更新または変更する必要がある場合に備えて、定数をコードから遠ざけておき、コードもよりクリーンにしたいと考えています。NumPy も使用していることに注意することが役立つかどうかはわかりませんが、それ以外には、他の非標準の Python 拡張機能はありません。また、このプログラムの設計やアーキテクチャに関する提案も受け付けています。