में टाइप संकेत के साथ डिफ़ॉल्ट पैरामीटर मान जोड़ना अगर मैं इस तरह एक समारोह है:अजगर
def foo(name, opts={}):
pass
और मैं मापदंडों के प्रकार संकेत जोड़ना चाहते हैं, मैं यह कैसे करते हो? जिस तरह से मैं मान लिया है मुझे एक सिंटैक्स त्रुटि देता है:
def foo(name: str, opts={}: dict) -> str:
pass
निम्नलिखित सिंटैक्स त्रुटि फेंक नहीं है, लेकिन यह इस मामले को संभालने के लिए सहज तरीके से की तरह प्रतीत नहीं होता:
def foo(name: str, opts: dict={}) -> str:
pass
मैं कर सकते हैं typing
documentation या Google खोज पर कुछ भी नहीं मिला।
संपादित करें: मुझे नहीं पता था कि पाइथन में डिफ़ॉल्ट तर्क कैसे काम करते थे, लेकिन इस प्रश्न के लिए, मैं ऊपर दिए गए उदाहरण रखूंगा। आम तौर पर निम्नलिखित करने के लिए यह बेहतर होता है:
def foo(name: str, opts: dict=None) -> str:
if not opts:
opts={}
pass
अंतिम कार्य सही तरीका है। यह वैसे ही 'स्कैला' भाषा भी करता है। –
आपके पास एक म्यूटेबल डिफ़ॉल्ट प्रकार है - इससे समस्याएं उत्पन्न हो सकती हैं –
मेरा अपडेट उत्तर देखें, @josh –