कुछ भाषाओं में आप रेफरी या वैल जैसे विशेष आरक्षित शब्द का उपयोग करके संदर्भ या मान द्वारा एक पैरामीटर पास कर सकते हैं । जब आप पायथन फ़ंक्शन के लिए एक पैरामीटर पास करते हैं, तो यह फ़ंक्शन को छोड़ने पर पैरामीटर के मूल्य को कभी भी बदल नहीं देता है। ऐसा करने का एकमात्र तरीका वैश्विक आरक्षित शब्द का उपयोग करके है (या जैसा कि मैं वर्तमान में इसे समझता हूं)।
उदाहरण 1:
k = 2
def foo (n):
n = n * n #clarity regarding comment below
square = n
return square
j = foo(k)
print j
print k
दिखाएगा
>>4
>>2
दिखा रहा है कि अपरिवर्तित होना
इस उदाहरण में चर n कभी नहीं बदला जाता है
उदाहरण 2:
n = 0
def foo():
global n
n = n * n
return n
इस उदाहरण में चर n को बदल दिया गया है
वहाँ पायथन में किसी भी तरह से एक समारोह फोन और अजगर बताते हैं कि करने के लिए है पैरामीटर या तो है एक मूल्य या संदर्भ पैरामीटर के बजाय वैश्विक का उपयोग कर?
दूसरे, एक स्तर के कैम्ब्रिज परीक्षा में वे कहते हैं कि एक फ़ंक्शन एक एकल मान लौटाता है जबकि एक प्रक्रिया एक से अधिक मान लौटाती है । मुझे सिखाया गया था कि 80 के दशक के दौरान एक फ़ंक्शन का रिटर्न स्टेटमेंट है और प्रक्रिया नहीं है। अब यह गलत क्यों है?