क्या list.append
झूठ का मूल्यांकन करने का कोई कारण है? या क्या यह खेलने में सफल होने पर 0 लौटने का सी सम्मेलन है?list.append का मूल्यांकन क्यों गलत है?
>>> u = []
>>> not u.append(6)
True
क्या list.append
झूठ का मूल्यांकन करने का कोई कारण है? या क्या यह खेलने में सफल होने पर 0 लौटने का सी सम्मेलन है?list.append का मूल्यांकन क्यों गलत है?
>>> u = []
>>> not u.append(6)
True
अधिकांश पायथन तरीकों कि एक कंटेनर में जगह वापसी None
उत्परिवर्तित - Command-query separation के सिद्धांत का एक आवेदन पत्र। (पाइथन हमेशा चीजों के बारे में व्यावहारिक रूप से व्यावहारिक है, इसलिए कुछ म्यूटेटर इसे प्राप्त करने पर एक उपयोगी मूल्य वापस कर देते हैं अन्यथा महंगा या गड़बड़ होगा - pop
विधि इस व्यवहारवाद का एक अच्छा उदाहरण है - लेकिन वे निश्चित रूप से अपवाद हैं, न कि नियम, और append
अपवाद बनाने का कोई कारण नहीं है)।
लिखने के दौरान एक पूरी तरह से अलग अर्थ है (y.append (5) और (उपज y) लिखते समय मैंने इस मुद्दे पर टक्कर लगी है) जहां मैंने नहीं किया एक सफल सूची वृद्धि (परोक्ष रूप से) झूठी मूल्यांकन का अनुमान है। – diciu
None
False
करने के लिए और एक समारोह वापस नहीं करता है कि कुछ भी None
वापस आ गए माना जाता है अजगर में मूल्यांकन करता है।
यदि आप टाइप करें:
>> print u.append(6)
None
Tadaaam :)
उत्परिवर्ती (जैसे संलग्न, विस्तार, क्रम, इत्यादि) जो एक सूची अद्यतन करते हैं, कोई मान वापस नहीं करते हैं। –
'कोई नहीं '*' गलत' का मूल्यांकन नहीं करता है। – SwiftsNamesake
@SwiftsNamesake 'बूल (कोई नहीं)' –
यह यथा-स्थान सूची संशोधित करता है और None
देता है। None
झूठे का मूल्यांकन करता है।
क्योंकि .append
विधि None
देता है, इसलिए not None
True
का मूल्यांकन करता है। त्रुटि पर पायथन आमतौर पर एक त्रुटि को जन्म देती है:
>>> a =()
>>> a.append(5)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
a.append(5)
AttributeError: 'tuple' object has no attribute 'append'
वास्तव में, यह रिटर्न None
>>> print u.append(6)
None
>>> print not None
True
>>>
list.append
समारोह रिटर्न None
करता है, यह सिर्फ सूची आपको लगता है कि विधि कॉल करने के प्रयोग कर रहे हैं करने के लिए मूल्य जोड़ने। वाक्यांश के लिए
>>> u = []
>>> not u
False
>>> print(u.append(6)) # u.append(6) == None
None
>>> not u.append(6) # not None == True
True
एक संभवतः बेहतर तरीका:
यहाँ बातें स्पष्ट करने के लिए कुछ न कुछ है * क्यों अजगर 'Builder' पैटर्न का उपयोग नहीं करता .. तो हम क्या कर सकते हैं' u.append (6)। संलग्न (7)। ..' * यह कष्टप्रद है। – javadba