दिलचस्प पोस्ट
एक्सपांडो ओब्जेक्ट में अज्ञात (डिजाइन समय पर) गुण जोड़ना कैसे एक सूची का आदेश दिया है की जांच करने के लिए? अक्षम फॉर्म इनपुट अनुरोध में प्रकट नहीं होते हैं नेटवर्क श्रोता एंड्रॉइड पीएचपी में छवि से सफेद स्थान का फसल करें लिनक्स में डेमॉन बनाना स्विफ्ट का उपयोग करते हुए मैं एक स्ट्रिंग कैसे बना सकता हूं? एसडीके के माध्यम से आईफोन वाईफाई सूचना तक पहुंच वेबड्राइवर: एक तत्व मौजूद है या नहीं? सीएसएस चयनकर्ता में वर्ग और पहचान कैसे करें? सी ++ 11 में धागा_लोक का क्या अर्थ है? क्यों मुख्य विधि में SwingUtilities.invokeLater का उपयोग करें? रेल 5: सक्रियरेकॉर्ड या क्वेरी मेवेन रिपॉजिटरी से स्रोत जेआरएस प्राप्त करें क्यों Rails4 "संपत्ति" समूह के लिए Gemfile में ड्रॉप समर्थन किया था

क्या पायथन फ़ंक्शन तर्कों के मूल्यांकन के आदेश पर भरोसा करना सुरक्षित है?

यह मानना ​​सुरक्षित है कि फ़ंक्शन तर्कों को बाएं से दाएं पायथन में मूल्यांकन किया जाता है?

संदर्भ बताता है कि ऐसा होता है लेकिन शायद इस क्रम को बदलने का कोई तरीका है जो मेरा कोड तोड़ सकता है।

मैं क्या करना चाहता हूं फ़ंक्शन कॉल के लिए समय टिकट जोड़ना है:

l = [] l.append(f(), time.time()) 

मैं समझता हूं कि मैं क्रमिक रूप से तर्कों का मूल्यांकन कर सकता हूं:

 l = [] res = f() t = time.time() l.append(res, t) 

लेकिन यह कम सुरुचिपूर्ण दिखता है इसलिए मैं इसे पहले से पसंद करना चाहता हूं अगर मैं उस पर भरोसा कर सकता हूं।

वेब के समाधान से एकत्रित समाधान "क्या पायथन फ़ंक्शन तर्कों के मूल्यांकन के आदेश पर भरोसा करना सुरक्षित है?"

हां, अजगर हमेशा बायां से दाएं फ़ंक्शन तर्क का मूल्यांकन करता है

यह किसी भी अल्पविराम से अलग सूची के लिए जाता है जहां तक ​​मुझे पता है:

 >>> from __future__ import print_function >>> def f(x, y): pass ... >>> f(print(1), print(2)) 1 2 >>> [print(1), print(2)] 1 2 [None, None] >>> {1:print(1), 2:print(2)} 1 2 {1: None, 2: None} >>> def f(x=print(1), y=print(2)): pass ... 1 2 

संदर्भ प्रलेखन से उद्धरित:

पायथन बाएं से दाएं का भाव मूल्यांकन करता है

तो हाँ, आप उस पर भरोसा कर सकते हैं