के रूप में यह किसी भी नाम के लिए किसी भी संदर्भ (टोकन कि एक वैध चर/कक्षा/समारोह/वस्तु नाम है) जिसके लिए वहाँ था कोई पिछले बंधन का सामना करना पड़ता अजगर एक NameError बढ़ा देंगे।
पायथन दुभाषिया फ़ाइल के स्रोत कोड को निष्पादित करता है क्योंकि यह इसे पढ़ता है।इस प्रकार def foo():
वास्तव में कथन है जो foo()
को परिभाषित करता है क्योंकि कोड लोड किया जा रहा है।
यह सोचना आसान है कि आगे के संदर्भ समर्थित हैं। इस पर विचार करें:
def foo():
return abc
abc="FooBar, Dude"
print foo()
... और आप देखेंगे कि इसे बिना किसी समस्या के चलाया जा सकता है। उद्धृत होने के रूप में foo()
की परिभाषा के बारे में सोचना सबसे अच्छा है। फ़ंक्शन का आह्वान होने तक सामग्री का मूल्यांकन नहीं किया जाता है। तो नेमइरर उठाया नहीं जाता है (जब तक कुछ मान फ़ंक्शन पर कॉल से पहले "एबीसी" नाम से बंधे होते हैं।
ध्यान दें कि इनमें से कुछ अर्थशास्त्र जावा, सी जैसी भाषाओं से काफी अलग हैं/सी ++, और पर्ल कि पाइथोनिस्टस अक्सर थोड़ा अलग शब्दावली का उपयोग करना पसंद करते हैं। चर और इसे "नाम" कहा जाता है और मूल्यों (या अधिक आम तौर पर, वस्तुओं) के साथ जोड़ने की प्रक्रिया को "बाध्यकारी" कहा जाता है। तो इसके बजाय "चर के मान निर्दिष्ट" आप कर रहे हैं "के नाम करने के लिए बाध्यकारी वस्तुओं।"
अनौपचारिक रूप से नाम, विशेष रूप से सरल संख्यात्मक या स्ट्रिंग वस्तुओं के लिए, "चर" और इस तरह के रूप में x='foo'
बयान कहा जाता है कार्य के रूप में भेजा जाता है। अर्थ विज्ञान आमतौर पर कर रहे हैं उतना ही पर्याप्त है कि हम डब्ल्यू परवाह नहीं है
स्रोत
2009-12-15 20:44:18
हाय। मैं सोच रहा था कि तर्कों को स्वीकार करने वाले कार्यों के लिए शैली # 1 का उपयोग करने का कोई तरीका था या नहीं। धन्यवाद – Pradyot
प्रद्योट: * args और * kwargs का उपयोग करें। abc = lambda * args, ** kwargs: myFunction (* args, ** kwargs) –