मैं PyCharm उपयोग कर रहा हूँ और मैं इस कथन है:एक = बी + ए करने के लिए कोई बेहतर तरीका है?
a = 'foo'
b = 'bar'
a = b + a
और PyCharm अंतिम पंक्ति कह रही है कि प्रकाश डाला गया:
Assignment can be replaced with augmented assignment
सबसे पहले मैंने सोचा था कि वहाँ कुछ इस तरह हो सकता है, लेकिन त्रुटि के साथ समाप्त हो गया :
a += b # 'foobar'
a =+ b # TypeError: bad operand type for unary +: 'str'
लेकिन 'foobar'
वह नहीं है जो मैं चाहता हूं; 'barfoo'
है।
तो, यह संवर्धित असाइनमेंट क्या है? क्या ऐसा करने का कोई और सही तरीका है या क्या मुझे PyCharm की चेतावनी को अनदेखा करना चाहिए?
कई अतिरिक्त संचालन कम्यूटिव ('1 + 2 == 2 + 1') हैं, लेकिन यह स्पष्ट रूप से तारों के साथ लागू नहीं होता है। चूंकि पाइथन गतिशील रूप से टाइप किया गया है, PyCharm यह नहीं बता सकता कि यह कौन सा है। – jonrsharpe
@jonrsharpe: मेरा मानना है कि PyCharm स्थिर विश्लेषण के माध्यम से संपादन समय पर प्रकारों को निर्धारित करने और निर्धारित करने के लिए बहुत सारे काम करता है। आप निश्चित रूप से संकेत दे सकते हैं कि किस प्रकार की अपेक्षा की जा सकती है। शायद अगर 'ए' और 'बी' तारों को बताया जाता है, तो यह सलाह नहीं देगी। –
@MartijnPieters दिलचस्प रूप से, यह इस चेतावनी को किसी फ़ंक्शन के अंदर नहीं देता है, इसलिए मैं यह जांच नहीं कर सकता कि एनोटेशन/डॉकस्ट्रिंग में टाइप-इंकिंग एक अंतर करेगी। मुझे आश्चर्य है कि यह निर्दिष्ट स्ट्रिंग अक्षर नहीं लेता है, हालांकि। – jonrsharpe