मुझे किसी अन्य पायथन फ़ाइल से केवल एक ही फ़ंक्शन आयात करने की आवश्यकता है जो इसमें सामान चलाती है, लेकिन जब मैं फ़ंक्शन आयात करता हूं, तो यह केवल उस फ़ंक्शन को आयात करने के बजाय पूरे कोड को चलाता है। क्या वैसे भी एक कोड है जो पूरे कोड को चलाने के बिना किसी अन्य .py फ़ाइल से आयात करता है?इसे चलाने के बिना एक पायथन मॉड्यूल आयात करें
उत्तर
another.py
में, कोड है कि आप एक ब्लॉक है कि केवल तब चलता है जब स्क्रिप्ट स्पष्ट रूप से चलाने के लिए कहा जाता है और सिर्फ
def my_func(x):
return x
if __name__ == '__main__':
# Put that needs to run here
अब
आयात नहीं करता है, तो आप your_script.py
में हैं में भाग जा नहीं करना चाहती के लिए कदम , आप इसे आयात कर सकते हैं, और यह
from another import my_func
my_func(...)
बहुत बहुत धन्यवाद! यह काम किया! –
नहीं चलेंगे अन्य अजगर स्क्रिप्ट है, जिसे आप आयात करने के लिए जा रहे हैं में, आप सभी कोड निम्नलिखित अंदर स्क्रिप्ट चलाने पर निष्पादित करने की आवश्यकता है कि रखना चाहिए अगर ब्लॉक -
if '__main__' == __name__:
केवल जब एक स्क्रिप्ट के रूप में है कि अजगर फ़ाइल चल रहा है, __name__
चर __main__
हो जाएगा। जब आप स्क्रिप्ट आयात करते हैं, तो स्थिति के अंदर कोई कोड नहीं चलाएगा।
आप फ़ंक्शन को किसी अन्य फ़ाइल में ले जा सकते हैं और इसे अपनी फ़ाइल में आयात कर सकते हैं।
लेकिन तथ्य यह है कि आप आयात पर सबकुछ चला रहे हैं, मुझे लगता है कि आपको अपने आयातित मॉड्यूल में अधिकांश चीजों को कार्यों में स्थानांतरित करने की आवश्यकता है और केवल उन्हें मुख्य गार्ड के साथ ही कॉल करने की आवश्यकता है।
def print_one():
print "one"
def print_two():
print "two"
def what_i_really_want_import():
print "this is what I wanted"
if __name__ == '__main__':
print_one()
print_two()
न कि जो आप शायद है, मैं की तरह
print "one"
print "two"
def what_i_really_want_import():
print "this is what I wanted"
दिखता है लगता है जो के साथ एक समारोह में मुख्य गार्ड कुछ भी आयात समय में निष्पादित नहीं किया जाएगा, लेकिन तब भी आप इसे अगर आप कॉल कर सकते हैं की तुलना में करने की जरूरत है। यदि नाम == "मुख्य" वास्तव में इसका मतलब है "क्या मैं इस स्क्रिप्ट को कमांड लाइन से चला रहा हूं?" एक आयात पर, यदि सशर्त झूठी वापसी करेगा तो आपकी print_one(), print_two() कॉल नहीं होंगे।
आयात पर निष्पादित करने के लिए चीजों को छोड़ने के कुछ अच्छे कारण हैं। उनमें से कुछ स्थिरांक, प्रारंभिक/कॉन्फ़िगरेशन चरण हैं जिन्हें आप स्वचालित रूप से करना चाहते हैं। और मॉड्यूल-स्तरीय वैरिएबल होने पर सिंगलटन प्राप्त करने का एक शानदार तरीका है।
def print_one():
print "one"
def print_two():
print "two"
time_when_loaded = time.time()
class MySingleton(object):
pass
THE_ANSWER = 42
singleton = MySingleton()
लेकिन बड़े पैमाने पर, लोड पर निष्पादित करने के लिए बहुत अधिक कोड न छोड़ें, अन्यथा आप इन समस्याओं के साथ समाप्त हो जाएंगे।
1.Open संपादक 2 में पेस्ट पुराने जमाने दूर
सरल समाधान कभी कभी गंदे है परिभाषा 3. कॉपी का पता लगाएं।
लोलोलोलोलोलोलोल – Dagrooms
- 1. परीक्षण चलाने पर पायथन आयात src मॉड्यूल
- 2. पायथन: इसे आयात किए बिना मॉड्यूल को मॉक करें या इसे
- 3. पायथन: मॉड्यूल आयात के साथ नामस्थान
- 4. पायथन मॉड्यूल को डी-आयात कैसे करें?
- 5. पायथन एक कक्षा में केवल एक मॉड्यूल आयात करें
- 6. पायथन उसी निर्देशिका में कस्टम मॉड्यूल बनाएं/आयात करें
- 7. मॉड्यूल घोषणा के बिना टाइपस्क्रिप्ट में कैसे आयात करें
- 8. पायथन थ्रेडिंग मॉड्यूल आयात विफलता
- 9. पायथन: आयात त्रुटि: 'HTMLParser' नामक कोई मॉड्यूल
- 10. पायथन: डीआईआर में सभी मॉड्यूल से कैसे आयात करें?
- 11. पायथन 2.5.4 - आयात त्रुटि: कोई मॉड्यूल etree.ElementTree
- 12. स्थापित पायथन संस्करण के आधार पर एक मॉड्यूल आयात करना?
- 13. एक सामान्य मॉड्यूल के लिए पायथन एकाधिक आयात
- 14. एक पायथन मॉड्यूल को कैसे आयात करें जो पहले ही आयात किया गया है?
- 15. पायथन: युक्त पैकेज आयात करें
- 16. आयात त्रुटि: स्केलेर्न नामक कोई मॉड्यूल (पायथन)
- 17. एक पायथन मॉड्यूल में फ़ंक्शन की लाइन संख्या (सजावट के बिना/बिना) कैसे प्राप्त करें?
- 18. पायथन आयात कार्य VS पर आयात। मॉड्यूल स्तर
- 19. मैं पायथन में एक तृतीय पक्ष मॉड्यूल कैसे आयात करूं?
- 20. एक निर्देशिका (पैकेज) से एक मॉड्यूल आयात करें
- 21. एडब्ल्यूएस लैम्ब्डा आयात मॉड्यूल त्रुटि पायथन
- 22. इसे दिखाए बिना एक फॉर्म लोड करें
- 23. सेटअप.py के बिना पायथन मॉड्यूल कैसे स्थापित करें?
- 24. पायथन: एक "आयात फ़ाइल"
- 25. पायथन आयात प्राथमिकता: पैकेज या मॉड्यूल?
- 26. पायथन - स्ट्रिंग के आधार पर आयात मॉड्यूल तो तर्क
- 27. पायथन के साथ win32gui मॉड्यूल का उपयोग कैसे करें?
- 28. पायथन आयात यांत्रिकी
- 29. आयात त्रुटि: कोई मॉड्यूल
- 30. संदर्भ खोने के लिए मॉड्यूल-अंडर-टेस्ट दोबारा आयात करें
@ जोड़ें: शायद डुप्लिकेट नहीं; यदि आप जिस मॉड्यूल को चलाने की कोशिश कर रहे हैं, वह सामानों को आयात करने की कोशिश कर रहा है, तो आप इसे आयात पर नहीं चाहते हैं, उस प्रश्न में कुछ भी नहीं है जो आप इसे रोकने के लिए कर सकते हैं। – user2357112
@ user2357112 आह, हाँ। मैंने '__main__' चेक की संभावित कमी के बारे में सोचा नहीं था। माफ़ कीजिये! – Edd