Todas las Noticias en Películas, Avances de Películas y Reseñas.

¿Cómo paso una variable por referencia?

¿Cómo paso una variable por referencia? ¿Sabes? Si no, no te preocupes, porque estoy aquí para hacerte entender lo mismo. Aprenderemos a pasar una variable por referencia. Para empezar, hay básicamente dos formas en las que podemos pasar argumentos o parámetros (como también los conocemos) a una función. Estos dos métodos son Pass-by-Value y Pass-by-Reference. Ahora veremos cuáles son, y luego echaremos un vistazo más de cerca a pasar variables por Pass-by-Reference.

¿Cómo paso una variable por referencia?

En esta sección, veremos los dos métodos con la ayuda de algunos ejemplos. Para que los temas sean más claros y completos.

Pasar por valor

  • Se crea una copia del argumento pasado a la función.
  • Y, cuando se realiza una operación en la copia, el valor real no cambia.
  • Lo que cambia es solo el valor de la copia que se crea dentro de la función.

Veamos un ejemplo para demostrar esto:

def func(x): 
    x += 25 
    print("Value in function call ~~> ", x)
x = 30 
print("Value before the function call ~~> ", x)
func(x)
print("Value after the function call ~~> ",x)

El resultado de la ejecución del código anterior es:

Value before the function call ~~>  30
Value in function call ~~>  55
Value after the function call ~~>  30
  • Es así porque, como sabrá anteriormente, durante el paso por valor, se genera una copia del argumento.
  • A continuación, se realizan los cambios en esa copia; igual que aquí y por lo tanto, no hay efecto de la misma en el valor original.
  • Por lo tanto, el valor original se emite después de la llamada a la función.
Recomendado:  Documentos de Google en la Web Obtener Emojis Reacciones Soporte

Pasar por referencia

  • En este caso, pasamos referencia al argumento original; y cuando se realiza una operación en el argumento, el valor real también cambia.
  • Cambia el valor tanto en la función como en la variable global.

Tomemos un ejemplo para demostrar esto:

def func(x): 
    x.append('ello') 
    print("Value in function call ~~> ",x)
x = ['H']
print("Value before the function call ~~> ", x)
func(x)
print("Value after the function call ~~> ",x)

La salida del programa anterior es la siguiente:

Value before the function call ~~>  ['H']
Value in function call ~~>  ['H', 'ello']
Value after the function call ~~>  ['H', 'ello']
  • Dado que aquí se usa una lista, su referencia se pasa a la función.
  • Cuando hacemos cambios en la lista, podemos ver su efecto después de la llamada a la función.

Metodología Python

Python básicamente utiliza el método de referencia de llamada por objeto, también denominado llamada por asignación. Esto significa que depende del tipo de argumento pasado.

  • Si pasa objetos inmutables, entonces se utiliza el método de llamada por valor.
  • Mientras que cuando pasa objetos mutables, se utiliza el método de llamada por referencia.

Ahora bien, ¿qué son los objetos inmutables?

Estos son básicamente aquellos objetos que no pueden cambiar su estado o valor. Estos son:

– Cuerdas

– Enteros

– Tuplas

def func(st,n,d):
    st = "Hi"
    n = 10
    d = (23, 62, 81)
    print("Value in function call ~~> ", st, n, d)
st = "Shubham"
n = 1
d = (32, 22, 45)
print("Value before the function call ~~> ", st, n, d)
func(st, n, d)
print("Value after the function call ~~> ", st, n, d)

La salida del código anterior es:

Value before the function call ~~>  Shubham 1 (32, 22, 45)
Value in function call ~~>  Hi 10 (23, 62, 81)
Value after the function call ~~>  Shubham 1 (32, 22, 45)
  • La salida viene como arriba, porque, aunque los valores de st, n y d cambian dentro de la función; el valor original no cambia.
  • Es así porque se pasan como valor.
  • Por esta misma razón, se emite el mismo valor después de la llamada a la función.
Recomendado:  qué temperatura de color es mejor para una bombilla inteligente según el uso

Ahora, hablemos de objetos mutables.

Estos son aquellos objetos que pueden cambiar su estado o valor. Los diferentes tipos de objetos mutables son:

– Listas

Diccionarios

– Conjuntos

¿Cómo hacer una lista plana a partir de una lista de listas? ¿Quieres saber entonces haga clic aquí !!

def func(st,n,d):
    st.append(7)
    n["name"]="Shubham"
    d = set({1,2})
    print("Value in function call ~~> ", st, n, d)
st = [11, 21, 31]
n = {"name" : "Rocky"}
d = {15, 25, 35}
print("Value before the function call ~~> ", st, n, d)
func(st, n, d)
print("Value after the function call ~~> ", st, n, d)

Su salida es:

Value before the function call ~~>  [11, 21, 31] {'name': 'Rocky'} {25, 35, 15}
Value in function call ~~>  [11, 21, 31, 7] {'name': 'Shubham'} {1, 2}
Value after the function call ~~>  [11, 21, 31, 7] {'name': 'Shubham'} {25, 35, 15}
  • En este programa, pasamos varios objetos mutables (listas, diccionarios y conjuntos, todos incluidos) a la función; y sus valores se cambian en él.
  • Lo que obtenemos después de la llamada a la función es, por lo tanto, el valor actualizado.

¿Cómo pasar objetos inmutables en listas y diccionarios?

  • Para pasar objetos inmutables dentro de objetos mutables (listas/diccionarios/conjuntos) los convertimos en los parámetros de la función.
  • Entonces, estos pueden actualizarse dentro de la función.

Entendamos esto con la ayuda de un ejemplo:

def dict_change(a):
    a["Hi !"] = "The 1st"
def list_change(ls):
    ls[0] = ls[0] + 7
a = {"Hi," : "Shubham"}
ls = [7]
print("Value before it is passed to function is ~~> ")
print("The dictionary ~~> ", a)
print("The list ~~>",ls)

dict_change(a)
list_change(ls)

print("Value after it is passed to function is ~~> ")
print("The dictionary ~~> ", a)
print("The list ~~>",ls)

Producción:

Value before it is passed to function is ~~> 
The dictionary ~~>  {'Hi,': 'Shubham'}
The list ~~> [7]
Value after it is passed to function is ~~> 
The dictionary ~~>  {'Hi,': 'Shubham', 'Hi !': 'The 1st'}
The list ~~> [14]

¿Cómo se divide una lista en partes de tamaño uniforme? Haga clic aquí para aprender !!

Recomendado:  Doctor Doom aún puede ganar la película de Marvel, dice el creador de Legion

LA GENTE DE TODO!! ~~>

A estas alturas, conoce los dos métodos para pasar valores como argumentos/parámetros a una función. En concreto, el método Pass-by-Value y el método Pass-by-Reference. También has entendido mucho más en profundidad con la ayuda de numerosos ejemplos. Por lo tanto, esperando de antemano que haya disfrutado leyendo este artículo. Y, también recuperar algo que valga la pena. Con esas palabras, hasta la próxima, nos vemos!! Adiós !! 🙂 ~~>

**::::::** ::))::((~~>>