2012-12-21 50 views
5

मैं एक पायथन एक्सटेंशन बनाना चाहता हूं और मुझे वास्तव में साइथन का उपयोग करने का विचार पसंद है। मुख्य रूप से इसके बारे में अधिक ज्ञान प्राप्त करने और गति लाभ का लाभ उठाने के लिए, यदि कोई हो। मैंने साइथन दस्तावेज का थोड़ा सा पढ़ा है लेकिन मैं कंप्यूटर वैज्ञानिक नहीं हूं (अभी तक) और निम्न स्तर की मूल बातें समझने के लिए गहराई से ज्ञान नहीं है, इसलिए मेरे निम्नलिखित प्रश्नों का कारण:साइथन आयात के साथ क्या करता है?

मैं था बस सोच रहा है, क्या होता है यदि मैं बाहरी रूप से आयातित (उदाहरण के लिए, एक ओआरएम या एसक्यूएल लाइब्रेरी या कोई अन्य तृतीय पक्ष लाइब्रेरी) का उपयोग करता हूं जो कि पाइथन एक्सटेंशन में विकसित हो रहा है?

साइथन इसे कैसे संभालता है?

क्या कोई आयात किया गया है यदि यह आयातित लाइब्रेरी/एक्सटेंशन शुद्ध पायथन में है या यदि यह संकलित भी है?

इसे संभालने का सही तरीका क्या है?

धन्यवाद।

पीएस। प्रश्न बोल्ड में टाइप किए गए हैं।

उत्तर

5

साइथन का लक्ष्य पायथन के साथ संगत होना है, यानी कि आप किसी भी पायथन कोड को साइथोनिज़ कर सकते हैं और यह पहले की तरह काम करेगा। वर्तमान में, पाइथन कोड का एक बड़ा हिस्सा पहले से ही काम करता है। साइथन आगे आपको अपने कोड के कुछ हिस्सों को अनुकूलित करने और इसे अधिक कुशल सी कोड में संकलित करने की अनुमति देता है।

कहा जा रहा है कि कोई भी पाइथन आयात डिफ़ॉल्ट रूप से रहेगा। उन्हें कोई भी कॉल पायथन आदेश के रूप में जारी किया जाएगा। यहां तक ​​कि यदि मॉड्यूल सी में लिखा गया है, तो साइथन मॉड्यूल के कार्यों को कॉल करने के लिए पाइथन के माध्यम से चक्कर लगाएगा। यदि आप सीधे सी पुस्तकालय का उपयोग करना चाहते हैं, तो आपको उनके लिए साइथन बाइंडिंग करना होगा। cython documentation explains how to do this

आम तौर पर, पाइथन एक पर्यवेक्षक के रूप में कार्य करता है और मॉड्यूल/कक्षाओं के दायरे को संभालता है। यदि एक मॉड्यूल में कोड किसी भी पायथन फ़ंक्शन को कॉल करता है (या एक पायथन चर का उपयोग करता है), तो पाइथन कॉलर के दायरे के अनुसार कॉल को हल करेगा। यदि बुलाया गया कार्य दूसरे मॉड्यूल में होता है, तो पाइथन खुशी से इसका उपयोग कर रहा है। कॉलर को नतीजा मिलेगा और वास्तव में परवाह नहीं करना चाहिए कि अन्य फ़ंक्शन एक अलग मॉड्यूल में था या नहीं। इस प्रकार कुंजी पाइथन के स्कोपिंग नियम है जो तय करती है कि कौन सा फ़ंक्शन कहा जाता है।