Mypy एक त्रुटि देता है यदि सेट को add()
का उपयोग करके नए tuple के साथ अपडेट किया जाता है
code.py
adgroups_by_campaign_id: Dict[CampaignId, Set[str]] = defaultdict(set)
for customer_id, campaign_ids in campaigns_per_customer_id.items():
adgroups = get_adgroups_in_campaings(ads_client, customer_id, campaign_ids, adgroup_names)
for adgroup in adgroups:
adgroups_by_campaign_id[CampaignId(adgroup['campaign_id'])].add(
(adgroup['adgroup_name'], adgroup['adgroup_resource_name']) -> RETURN ERROR
)
त्रुटि का मुख्य भाग
error: Argument 1 to "add" of "set" has incompatible type "Tuple[str, str]"; expected "str"
जहाँ तक मुझे पता है, सेट में नए टुपलेट जोड़ना आम बात है।
ऐड () विधि सेट में एक तत्व के रूप में एक टपल ऑब्जेक्ट जोड़ सकती है
Mypy को ऐसा क्यों लगता है कि इसकी अनुमति नहीं है?
1 उत्तर
adgroups_by_campaign_id
को Dict[CampaignId, Set[str]]
के रूप में चिह्नित किया गया है, जिसका अर्थ है कि mypy
सभी मानों को सेट करने की अपेक्षा करेगा जिसमें स्ट्रिंग्स हों, स्ट्रिंग्स के टुपल्स नहीं।
Set[str]
को Set[Tuple[str, str]]
में बदला जाना चाहिए।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
Set[str]
हैSet[str]
के रूप में एनोटेट किया है, लेकिन आप इस सेट में एकTuple[str, str]
जोड़ने का प्रयास कर रहे हैं, लेकिन इसके लिएstr
....