Я искал простой ответ на этот вопрос, но кажется, что я не могу его найти. Я бы предпочел держаться подальше от любых внешних библиотек, которые еще не включены в 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. Я также открыт для любых предложений относительно дизайна или архитектуры этой программы.