मैं एक परियोजना पर काम कर रहा हूं कि लगभग हर जगह तर्क कुंजी द्वारा पारित किया जाता है। केवल कीवर्ड (डिफ़ॉल्ट मान) पैराम या दोनों के मिश्रण के साथ, स्थितित्मक पैरा के साथ फ़ंक्शन हैं। उदाहरण के लिए निम्नलिखित कार्य:कार्यों के लिए तर्क पारित करने के लिए पाइथोनिक तरीका क्या है?
def complete_task(activity_task, message=None, data=None):
pass
वर्तमान कोड में यह कार्य इस तरह कहा जा सकता है:
complete_task(activity_task=activity_task, message="My massage", data=task_data)
मेरे लिए वहाँ तर्क जिसका नाम के संदर्भ द्वारा स्पष्ट है नाम के लिए कोई मतलब नहीं है चर निष्पादन/चर नाम से। मैं इसे इस तरह कहेंगे:
complete_task(activity_task, "My message", task_data)
कुछ मामलों में जहां यह स्पष्ट नहीं है कि क्या एक कॉल तर्क संदर्भ से है, या चर नाम से अनुमान लगाया, मैं क्या कर सकता है:
complete_task(activity_task, message="success", task_data=json_dump)
तो इसने मुझे आश्चर्यचकित कर दिया कि यदि स्थिति तर्क/पुन: व्यवस्थित करने की आवश्यकता नहीं है या कुछ कीवर्ड पैराम्स के लिए डिफ़ॉल्ट मानों का उपयोग करने की आवश्यकता नहीं है, तो स्थितित्मक/कीवर्ड पैराम, के साथ फ़ंक्शंस कॉल करने के लिए कोई सम्मेलन या "पायथनिक" तरीका है।
आप विधियों के साथ कार्यों को भ्रमित कर रहे हैं। आपकी पोस्ट में सबकुछ एक कार्य है, एक विधि नहीं। –
@ टोमकारज़: मेह, पायथन उन चीजों के बीच शायद ही अंतर करता है। एक विधि "बस" एक फ़ंक्शन है जो कक्षा से (और एक्सेस किया जाता है) से जुड़ा होता है। – Kevin
@TomKarzes क्षमा करें, मैंने खुद को सही किया। मैं "विधियों" का जिक्र कर रहा था क्योंकि परियोजना में अधिकांश मामले वास्तविक तरीके हैं लेकिन उपरोक्त सरल उदाहरण के लिए, मैंने इसे एक समारोह के रूप में लिखा है। फिर भी, मेरे द्वारा विश्वास किए गए प्रश्न में बाकी सब कुछ वही लागू होता है। – ddinchev