En algunos idiomas, puede pasar un parámetro por referencia o valor utilizando una palabra reservada especial como ref o val . Cuando pasa un parámetro a una función de Python, nunca altera el valor del parámetro al salir de la función. La única forma de hacerlo es usando la palabra reservada global (o como la entiendo actualmente).
Ejemplo 1:
k = 2
def foo (n):
n = n * n #clarity regarding comment below
square = n
return square
j = foo(k)
print j
print k
mostraría
>>4
>>2
mostrando k sin cambios
En este ejemplo, la variable n nunca se cambia
Ejemplo 2:
n = 0
def foo():
global n
n = n * n
return n
En este ejemplo se cambia la variable n
¿Hay alguna forma en Python de llamar a una función y decirle a Python que el parámetro es un valor o un parámetro de referencia en lugar de usar global?
En segundo lugar, en los exámenes de Cambridge de nivel A, ahora dicen que una función devuelve un solo valor, mientras que un procedimiento devuelve más de un valor. Me enseñaron que una función tiene una declaración de retorno y un procedimiento no, durante los años 80. ¿Por qué esto ahora es incorrecto?