Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन मॉड्यूल संशोधित करने के सामान्य अभ्यास क्या हैं?

यदि आप एक मॉड्यूल संशोधित कर रहे हैं और हर बार उस मॉड्यूल को सेव करने पर शेल रीस्टार्ट किए बिना इंटरप्रेटर में इसका परीक्षण करना चाहते हैं, तो आप `reload(moduleName)` फ़ंक्शन का उपयोग कर सकते हैं। `reload(moduleName)` पहले से लोड किए गए मॉड्यूल को रीलोड करता है (यह मानते हुए कि आपने इसे `"import moduleName"` सिंटैक्स के साथ लोड किया है)। यह बातचीत के लिए अभिप्रेत है, जहां आपने एक मॉड्यूल के लिए सोर्स फ़ाइल संपादित की है और पायथन छोड़े बिना और इसे फिर से शुरू किए बिना इसका परीक्षण करना चाहते हैं।

उदाहरण

>> import mymodule
>>> # mymodule संपादित किया और इस स्क्रिप्ट में रीलोड करना चाहते हैं
>>> reload(mymodule)

महत्वपूर्ण नोट्स

  • मॉड्यूलनाम मॉड्यूल का वास्तविक नाम है, उसके नाम वाली स्ट्रिंग नहीं
  • पायथन 3 में, `reload` को बिल्टइन्स से `imp` में स्थानांतरित कर दिया गया था
  • पायथन 3 में `reload` का उपयोग करने के लिए, आपको `imp.reload(moduleName)` लिखना होगा न कि केवल `reload(moduleName)`

पायथन 3 में आधुनिक तरीका

import importlib
import mymodule

# मॉड्यूल संपादित करने के बाद
importlib.reload(mymodule)

पायथन 3.4+ के लिए importlib.reload


import importlib
import sys

# यदि मॉड्यूल sys.modules में है
if 'mymodule' in sys.modules:
    importlib.reload(sys.modules['mymodule'])

चेतावनी

  • रीलोडिंग सभी रेफरेंस अपडेट नहीं करता - पुराने ऑब्जेक्ट रेफरेंस करने वाले कोड को मैन्युअल अपडेट की आवश्यकता होती है
  • क्लास परिभाषाएं रीलोड होती हैं लेकिन मौजूदा इंस्टेंस पुराने क्लास का उपयोग करते रहते हैं
  • मॉड्यूल-स्तरीय कोड फिर से निष्पादित होता है (साइड इफेक्ट्स संभव)
  • प्रोडक्शन कोड में रीलोडिंग से बचें - केवल विकास/डिबगिंग के लिए

बेहतर विकास कार्यप्रवाह

  • ऑटो-रीलोड के लिए pytest --pdb या ipython --auto-reload उपयोग करें
  • IDE डिबगर्स (VS Code, PyCharm) हॉट रीलोडिंग का समर्थन करते हैं
  • उचित परीक्षण लिखें बजाय मैन्युअल रीलोडिंग के
  1. - Python में reload() Function क्या करता है?

    reload() Function reload(moduleName) Function एक Previously Loaded Module को Reload करता है (यह मानते हुए कि आपने इसे import moduleName Syntax के साथ Load किया था)। यह Conversational Use के लिए Intended है, जहां आपने किसी Module के Source File को Edit किया है और Python को छोड़े बिना और इसे फिर से S

  1. - पायथन में एक्सेप्शन हैंडलिंग के लिए सर्वोत्तम अभ्यास क्या हैं?

    पायथन में एक्सेप्शन हैंडलिंग के लिए कुछ सर्वोत्तम अभ्यास नीचे दिए गए हैं: एक्सेप्शन एरर स्टेटस कोड लौटाने से बेहतर हैं। हमें पायथन में एक्सेप्शन को हैंडल करना होगा क्योंकि पूरी भाषा कोर और स्टैंडर्ड लाइब्रेरीज एक्सेप्शन फेंकती हैं। सुंदर ढंग से हैंडल किए गए एक्सेप्शन किसी भी दिन एरर कोड्स और ट्रेस

  1. - पायथन वेरिएबल्स के लिए बुनियादी स्कोपिंग नियम क्या हैं?

    मार्क लुट्ज़ की पुस्तक लर्निंग पायथन में, वे पायथन स्कोपिंग कैसे काम करती है यह याद रखने के लिए निम्न स्मरक सुझाते हैं: LEGB सबसे संकीर्ण स्कोप से सबसे व्यापक स्कोप तक: L का अर्थ है लोकल। यह फंक्शन्स के लोकल स्कोप में परिभाषित वेरिएबल्स को संदर्भित करता है। E का अर्थ है एनक्लोज़िंग। यह अन्य फंक्शन्