में आयात स्थिरांक मैं इस प्रश्न का एक सरल उत्तर ढूंढ रहा हूं, लेकिन ऐसा लगता है कि मुझे कोई नहीं मिल रहा है। मैं किसी बाहरी पुस्तकालय से दूर रहना पसंद करूंगा जो पहले से ही पायथन 2.6/2.7 में शामिल नहीं है।.h फ़ाइल से python
2 सी हेडर फाइल जो निम्न के समान है:
//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;
...
और मैं एक अजगर वर्ग कि मैं आयात करना चाहते हैं है इन स्थिरांक में:
#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
...
मैं ग कोड है जो स्थिरांक के रूप में अच्छी तरह से उपयोग करता है, और इस जैसा दिखता है:
//computations.c
#include <stdio.h>
#include <math.h>
#include "constants_a.h"
// do some calculations, blah blah blah
मैं कैसे पायथन वर्ग में हेडर फाइल से स्थिरांक आयात कर सकते हैं?
शीर्षलेख फ़ाइलों constants_a.h और constants_b.h का कारण यह है कि मैं स्थिरांक का उपयोग करके अधिकांश गणना करने के लिए पायथन का उपयोग कर रहा हूं, लेकिन एक बिंदु पर मुझे अधिक अनुकूलित गणना करने के लिए सी का उपयोग करने की आवश्यकता है। इस बिंदु पर मैं सी कोड को पायथन में सी कोड लपेटने के लिए उपयोग कर रहा हूं। मैं स्थिरांक को कोड से दूर रखना चाहता हूं, अगर मुझे उन्हें अपडेट या बदलने की ज़रूरत है, और मेरा कोड भी अधिक क्लीनर बनाएं। मुझे नहीं पता कि यह ध्यान देने में मदद करता है कि मैं न्यूमपी का भी उपयोग कर रहा हूं, लेकिन इसके अलावा, कोई अन्य गैर-मानक पायथन एक्सटेंशन नहीं। मैं इस कार्यक्रम के डिजाइन या वास्तुकला के संबंध में किसी भी सुझाव के लिए भी खुला हूं।
इस तरह के देर से प्रतिक्रिया के लिए खेद है। मेरे पास एक नई, जरूरी परियोजना थी जिस पर मैं काम कर रहा था, और उसे बैकबर्नर पर रखना पड़ा। फिलहाल, मैं कांग्रेस और एमिलियो के उत्तरों के बीच फंस गया हूं। मैं शायद कांग्रेस के ctypes कार्यान्वयन की ओर अधिक दुबला होगा, लेकिन मुझे अभी भी वास्तव में 're' का उपयोग कर पार्सिंग विधि पसंद है। सभी महान विचारों के लिए धन्यवाद! –