शॉर्टकट:
उत्तर
PEP299 के लिए एक समाधान का प्रस्ताव इस मस्सा, अर्थात् एक विशेष समारोह नाम __main__
रही है। यह अस्वीकार कर दिया था, आंशिक रूप से है क्योंकि:
गुइडो स्पष्ट है कि वह विचार पसंद नहीं है वैसे भी रूप में यह "है लायक नहीं परिवर्तन (डॉक्स, उपयोगकर्ता की आदतों, आदि) और विशेष रूप से कुछ भी नहीं है टूटा । "
http://www.python.org/dev/peps/pep-0299/
तो कुरूपता रहना होगा, कम से कम जब तक गुइडो के BDFL के रूप में।
बीडीएफएल फिर से नहीं कहता है! :) –
मूल रूप से हर अजगर प्रोग्रामर करता है में बहुत अच्छी नहीं लगती है सुंदर लिखने के लिए कठिन है, और भी। तो बस इसके साथ रहो। ;)
इसके अलावा आप इसे पूरी तरह से छोड़ सकते हैं यदि आपकी स्क्रिप्ट हमेशा एक अनुप्रयोग के रूप में चलाने के लिए होती है और मॉड्यूल के रूप में आयात नहीं की जाती है - लेकिन आपको इसे किसी भी तरह से उपयोग करने के लिए प्रोत्साहित किया जाता है, भले ही यह वास्तव में आवश्यक न हो।
(मैं एक जवाब है कि करता है वास्तव में प्रश्न का उत्तर नहीं दे के लिए +6 से खुश हूँ) –
शायद मैं एक पीईपी :) –
@Gerald शुरू कर देना चाहिए। : PEP299 (और मेरा जवाब) देखें, ऐसा लगता है कि हम इसके साथ फंस गए हैं। (एक ऐसी भाषा के लिए शर्म की बात है जो अन्यथा इतनी साफ है कि, 1 दिन, एक नया पायथन प्रोग्रामर एक कार्यान्वयन विस्तार से अवगत कराया जाता है जो "पायथन के ज़ेन" की पहली पंक्ति का उल्लंघन करता है: "सुंदर बदसूरत से बेहतर है") –
नहीं है, क्षमा करें, नहीं है। यह बहुत अच्छा नहीं लग रहा है, लेकिन यह हमें मिला है।
यह निश्चित रूप से, भाषा में एक मस्सा है कुछ भी है कि बॉयलरप्लेट हो जाता है और नकल की और फाइल करने के लिए फ़ाइल से चिपकाया जाता है के रूप में। इसके लिए कोई शॉर्टेंड नहीं है।
मौसा और बॉयलरप्लेट जाना के रूप में, हालांकि, कम से कम यह मामूली है।
आप if'__main__'==__name__:
की तरह छोटे मतलब है?
इस सवाल पूछने के बाद, मैं यह करने के लिए एक समाधान बनाने का फैसला किया:
from automain import * # will only import the automain decorator
@automain
def mymain():
print 'this is our main function'
blog post यह बताते हैं, और code is on github और easy_installed जा सकता है:
easy_install automain
हालांकि निश्चित रूप से एक साफ पाइथन चाल, इस मॉड्यूल द्वारा जोड़ा गया जटिलता इसे कम उपयोगी बनाता है। इस मॉड्यूल का उपयोग करने वाले कोड में "wtf !?" जाने के लिए कोई भी पाठक होगा, 'अगर __name__ ==' __main __ 'ढूंढने की उम्मीद है: और यहां तक कि सजाए गए एकल भी तर्कसंगत रूप से एक महान बलिदान है। – Walter
... क्या यह लगभग समान लंबाई नहीं है?गिनने के सबसे संभावित तरीके में, यह लगभग 3 वर्ण कम है। 'स्वचालित आयात से * @ automain' बनाम '__name__ ==" __main__ ": mymain()' – dbr
छोटा, यदि आप लाइनों की संख्या:
__name__ == '__main__' and main()
- 1. शॉर्टकट
- 2. शॉर्टकट
- 3. विंडोज शॉर्टकट
- 4. एक्सकोड शॉर्टकट?
- 5. कुंजीपटल शॉर्टकट
- 6. mysql_real_escape_string शॉर्टकट
- 7. शॉर्टकट PyCharm
- 8. शॉर्टकट/टीएफएस
- 9. reindent शॉर्टकट
- 10. XCode शॉर्टकट "{}"
- 11. कुंजीपटल शॉर्टकट
- 12. शॉर्टकट Emacs
- 13. सशर्त शॉर्टकट
- 14. क्यूटी शॉर्टकट
- 15. कुंजीपटल शॉर्टकट
- 16. बनाना शॉर्टकट
- 17. एसक्यूएल सर्वर प्रबंधन स्टूडियो शॉर्टकट और कीबोर्ड शॉर्टकट
- 18. वेबब्रोसर नियंत्रण शॉर्टकट चोरी
- 19. विजुअल स्टूडियो 2005 शॉर्टकट
- 20. समूह आंशिक वर्ग शॉर्टकट
- 21. Resharper String.Format शॉर्टकट
- 22. मैटलैब संपादक शॉर्टकट
- 23. एक अनुकूलन कुंजीपटल शॉर्टकट
- 24. शॉर्टकट प्रकाश डाला उपयोगों
- 25. गिट - वर्तमान शाखा शॉर्टकट
- 26. शॉर्टकट कुंजी ग्रहण
- 27. कैसे एक शॉर्टकट Powershell
- 28. एक्सकोड में कीबोर्ड शॉर्टकट
- 29. सी ++ टेम्पलेट मैक्रो शॉर्टकट
- 30. कस्टम कीबोर्ड शॉर्टकट
"थकाऊ लिखने के लिए" - लेकिन अधिकतम एक बार मॉड्यूल प्रति, आम तौर पर कम अक्सर। "बहुत अच्छा नहीं लग रहा है" - हाँ, लेकिन आप इसे जीवित रहेंगे। – delnan
मैं साल के लिए इसके साथ बच गया है, delnan;) –