उत्तर
मुझे नहीं लगता कि यह एक आधिकारिक नाम है, यह सिर्फ एक चालाक/आलसी तरीका संक्षिप्त होना करने के लिए है।
a = b if b else {}
या:: यह मोटे तौर पर के बराबर है
if b:
a = b
else:
a = {}
मैं एक टिप्पणी के रूप में यह लिखा लेकिन मुझे लगता है कि यहाँ उल्लेख के लायक है:
आप जब इस चाल का उपयोग कर बहुत सावधान रहना होगा। यदि आपका इरादा किसी चीज का कोई डिफ़ॉल्ट मान निर्धारित करना है, तो इस चाल का उपयोग करने से स्पष्ट रूप से is None
परीक्षण लिखना बेहतर होगा। इसका कारण यह है कि कोई भी एकमात्र चीज नहीं है जो एक बुलियन संदर्भ में झूठी मूल्यांकन करती है। 0, [], {}, ... भी गलत का मूल्यांकन करते हैं। इसलिए यदि आप इन विशेष मामलों के बारे में नहीं सोचते हैं तो यह चाल आपको अपेक्षित परिणाम नहीं दे सकती है।
a = b if b is not None else {}
तो चलो उसे एक दें :) –
बहुत ज्यादा var = b ?? सी # में नया बी()। –
@ फिलिप: इसी तरह, उस उद्देश्य के लिए जानबूझकर सी # में जोड़ा गया था। पायथन में यह चाल काम करती है क्योंकि किसी को भी बुलियन संदर्भ में झूठा माना जाता है। लेकिन 0, [], {}, आदि ... भी झूठे का मूल्यांकन करते हैं, इसलिए सावधान रहें। यदि आप '??' का अनुकरण करना चाहते हैं, तो इस चाल पर भरोसा करने से स्पष्ट रूप से 'कोई नहीं' परीक्षण लिखना बेहतर होगा। –
एक विशेष निर्माण नहीं है यही कारण है कि, कम से कम मेरे लिए कुछ हद तक थक आँखों के लिए। यह
(b or {})
के परिणाम को असाइन करने का कह रहा है।
तो, अगर ख एक झूठी मूल्य, एक, हो जाता है {} (खाली शब्दकोश शाब्दिक) अन्यथा यह ख का मूल्य हो जाता है।
बिल्कुल, लेकिन शायद इसके लिए एक नाम है। शॉर्ट-सर्किट असाइनमेंट वह है जिसे मैं कहने का लुत्फ उठाऊंगा। शायद सशर्त असाइनमेंट? लेकिन वह आम तौर पर?: ऑपरेटर को संदर्भित करता है। –
यह वास्तव में किसी भी प्रकार की शॉर्ट सर्किटिंग पर भरोसा नहीं कर रहा है, हालांकि ... अगर मैं आरएचएस पर कुछ दुष्प्रभाव को दबा रहा था तो मैं इसके लिए जाऊंगा। लेकिन इसके लिए? –
यदि आप सी ++ या जावा से आ रहे हैं तो यह एक "विशेष निर्माण" है जहां एकमात्र चीजें जिन्हें आप "या" के दोनों तरफ रख सकते हैं, वे बूलियन हैं। यहां, बी कोई ऑब्जेक्ट हो सकता है (संभावित रूप से संदर्भ के आधार पर एक शब्दकोश) ताकि (बी या {}) * एक * बूलियन नहीं है। पाइथोनिस्टा के लिए बिल्कुल सामान्य, लेकिन यह स्पष्ट नहीं है कि आप पहली बार पाइथन सीख रहे हैं। – MatrixFrog
The expression that return last evaluated argument
हो सकता है:
यहाँ एक तरीका है कि सुरक्षित है यह करने के लिए है।
डिफ़ॉल्ट असाइनमेंट मुहावरा
आधिकारिक या आपके द्वारा आविष्कार किया गया? –
@ स्टेफानो, मैंने सोचा कि हम जो सोचते हैं उसके लिए हम मतदान कर रहे हैं आधिकारिक नाम होना चाहिए :) –
अभिव्यक्ति b or {}
सिर्फ एक सरल boolean OR expression है। इस बारे में विशेष सिर्फ इतना है कि यह अभिव्यक्ति की जरूरत नहीं एक बूलियन मान परिभाषा के अनुसार अन्य भाषाओं में की तरह वापसी करता है:
अभिव्यक्ति
x or y
पहले का मूल्यांकन करता है एक्स; यदि x सत्य है, तो इसका मूल्य वापस कर दिया गया है; अन्यथा, वाई का मूल्यांकन किया गया है और परिणामी मूल्य वापस कर दिया गया है।(ध्यान दें कि न तो
and
है और न हीor
मूल्य को प्रतिबंधित करने और वेFalse
औरTrue
पर लौटने टाइप करें, बल्कि पिछले का मूल्यांकन तर्क लौटने। यह कभी कभी उपयोगी है, उदाहरण के लिए, अगरs
एक स्ट्रिंग है कि एक डिफ़ॉल्ट रूप से प्रतिस्थापित किया जाना चाहिए है यदि यह खाली है, तो अभिव्यक्तिs or 'foo'
वांछित मान उत्पन्न करती है। क्योंकिnot
को किसी भी मूल्य का आविष्कार करना पड़ता है, इसलिए यह उसी तर्क के मूल्य को इसके तर्क के रूप में वापस करने के लिए परेशान नहीं है, उदाहरण के लिए,not 'foo'
False
उत्पन्न करता है,''
नहीं।)
- 1. इस कोड निर्माण का नाम क्या है: हालत? true_expression: false_expression
- 2. सी ++ के तीर (->) ऑपरेटर का आधिकारिक नाम क्या है?
- 3. इस विरोधी पैटर्न का नाम क्या है?
- 4. क्या इस संयोजक का नाम है?
- 5. इस पैटर्न का नाम क्या है?
- 6. इस ऑपरेटर का नाम क्या है "+ ="?
- 7. इस विशेष इंडेंट शैली का नाम क्या है? ("ब्रेसिज़ स्टैक्ड")
- 8. क्या सी # का कोई आधिकारिक लोगो है?
- 9. आप इस सीआरयूडी कक्षा का नाम क्या नाम देंगे?
- 10. आवधिक बचत/फ्लश/प्रतिबद्ध - क्या इस पैटर्न का नाम है?
- 11. क्या एपीके का कोई आधिकारिक प्रारूप विनिर्देश नहीं है?
- 12. जेएसपी ईएल: संपत्ति का नाम गतिशील निर्माण
- 13. क्या इस एल्गोरिदम के लिए कोई नाम है?
- 14. क्या इस तरह का कोई कार्य पहले से मौजूद है? (या, इस फ़ंक्शन के लिए बेहतर नाम क्या है?)
- 15. क्या इस सी # सुविधा का नाम है और यह क्या करता है?
- 16. 'भाषा निर्माण' का क्या अर्थ है?
- 17. $ # निर्माण का अर्थ बैश में क्या है?
- 18. इस नेट का लाभ क्या है
- 19. क्या डेटाबेस स्कीमा में कई से अधिक रिश्ते तालिका के लिए कोई आधिकारिक नाम है?
- 20. आधिकारिक पॉडकास्ट डीटीडी कहां है?
- 21. इसका नाम क्या है?
- 22. इस प्रकार के फ्लोचार्ट के लिए नाम क्या है?
- 23. इस रूबी कोड में मानचित्र (और: नाम) क्या करता है?
- 24. क्या इस समारोह या पैटर्न के लिए कोई नाम है?
- 25. सी/सी ++ प्रीप्रोसेसर की इस पंक्ति का क्या अर्थ है?
- 26. Gradle कार्य का निर्माण पहले से ही इस मुद्दे को
- 27. इस सी # कोड में इस कोलन का क्या अर्थ है?
- 28. क्रेडिट कार्ड के 3 अंकों कोड के लिए आधिकारिक नाम क्या है?
- 29. PHP4 के लिए समर्थन का आधिकारिक अंत?
- 30. इस पुनर्लेख नियम का क्या अर्थ है?
तुम भी रूबी में यह देख,। –
और perl अगर मुझे जावास्क्रिप्ट में भी सही ढंग से –
याद है। – YOU