In einigen Sprachen können Sie einen Parameter als Referenz oder Wert übergeben, indem Sie ein spezielles reserviertes Wort wie ref oder val verwenden . Wenn Sie einen Parameter an eine Python-Funktion übergeben, ändert sich der Wert des Parameters beim Verlassen der Funktion nie. Der einzige Weg, dies zu tun, ist die Verwendung des global reservierten Wortes (oder wie ich es derzeit verstehe).
Beispiel 1:
k = 2
def foo (n):
n = n * n #clarity regarding comment below
square = n
return square
j = foo(k)
print j
print k
würde zeigen
>>4
>>2
zeigt, dass k unverändert ist
In diesem Beispiel wird die Variable n niemals geändert
Beispiel 2:
n = 0
def foo():
global n
n = n * n
return n
In diesem Beispiel wird die Variable n geändert
Gibt es in Python eine Möglichkeit, eine Funktion aufzurufen und Python mitzuteilen, dass der Parameter entweder ein Wert oder ein Referenzparameter ist, anstatt global zu verwenden?
Zweitens heißt es in den Cambridge-Prüfungen der Stufe A jetzt, dass eine Funktion einen einzelnen Wert zurückgibt , während eine Prozedur mehr als einen Wert zurückgibt . Mir wurde beigebracht, dass eine Funktion in den 80er Jahren eine return-Anweisung hat und eine Prozedur nicht. Warum ist das jetzt falsch?