अजगर संकलन ()

संकलन () विधि स्रोत से एक पायथन कोड ऑब्जेक्ट (सामान्य स्ट्रिंग, एक बाइट स्ट्रिंग, या एएसटी ऑब्जेक्ट) देता है।

का सिंटैक्स compile()है:

 संकलन (स्रोत, फ़ाइल नाम, मोड, झंडे = 0, NOT_inherit = गलत, अनुकूलन = -1)

compile() विधि का उपयोग किया जाता है यदि पायथन कोड स्ट्रिंग रूप में है या एएसटी ऑब्जेक्ट है, और आप इसे कोड ऑब्जेक्ट में बदलना चाहते हैं।

compile()विधि द्वारा लौटाए गए कोड ऑब्जेक्ट को बाद में विधियों का उपयोग करके बुलाया जा सकता है जैसे: निष्पादन () और eval () जो गतिशील रूप से उत्पन्न पायथन कोड को निष्पादित करेगा।

संकलन () पैरामीटर

  • source - एक सामान्य स्ट्रिंग, एक बाइट स्ट्रिंग, या एक एएसटी ऑब्जेक्ट
  • filename- वह फाइल जिससे कोड पढ़ा गया था। यदि इसे किसी फ़ाइल से नहीं पढ़ा गया है, तो आप स्वयं एक नाम दे सकते हैं
  • mode- या तो execया evalया single
    • eval - केवल एक ही अभिव्यक्ति को स्वीकार करता है।
    • exec - यह एक कोड ब्लॉक ले सकता है जिसमें पायथन स्टेटमेंट्स, क्लास और फ़ंक्शंस, और इतने पर हैं।
    • single - अगर यह एक एकल इंटरैक्टिव बयान के होते हैं
  • flags(वैकल्पिक) और dont_inherit(वैकल्पिक) - नियंत्रण जो भविष्य के बयान स्रोत के संकलन को प्रभावित करते हैं। डिफ़ॉल्ट मान: 0
  • optimize(वैकल्पिक) - कंपाइलर का अनुकूलन स्तर। डिफ़ॉल्ट मान -1।

संकलन से वापसी मान ()

compile() विधि एक पायथन कोड ऑब्जेक्ट देता है।

उदाहरण: संकलन () कैसे काम करता है?

 codeInString = 'a = 5b=6sum=a+bprint("sum =",sum)' codeObejct = compile(codeInString, 'sumstring', 'exec') exec(codeObejct)

आउटपुट

 योग = ११

यहां, स्रोत सामान्य स्ट्रिंग रूप में है। फ़ाइल नाम sumstring है। और, execमोड बाद में exec()विधि के उपयोग की अनुमति देता है ।

संकलन () विधि स्ट्रिंग को पायथन कोड ऑब्जेक्ट में कनवर्ट करता है। फिर कोड ऑब्जेक्ट को exec()विधि का उपयोग करके निष्पादित किया जाता है।

दिलचस्प लेख...