auto argumento de Python

Funciones y métodos de Python

Las clases de Python deben instanciarse o llamarse antes de poder acceder a sus métodos. Si olvidas crear una instancia de un objeto de una clase e intentas acceder a un método de clase, encuentras un error que dice & ldquo; falta 1 argumento posicional requerido: & lsquo; self & rsquo; & rdquo ;.

En este guía, hablamos de lo que significa este error y por qué se plantea. Analizamos un ejemplo de este error en acción para ayudarlo a aprender cómo solucionarlo.




falta 1 argumento posicional requerido: & lsquo; self & rsquo;

Los argumentos posicionales se refieren a datos que son pasado a una función. En una clase, cada función debe recibir el valor & ldquo; self & rdquo ;. El valor de & ldquo; self & rdquo; es similar a & ldquo; this & rdquo; en JavaScript. & ldquo; yo mismo & rdquo; representa los datos almacenados en un objeto de una clase.

Cuando llamas a un método de clase sin primero instanciar un objeto de esa clase, obtienes un error. Esto se debe a que & ldquo; self & rdquo; no tiene ningún valor hasta que se ha creado una instancia de un objeto.

Los errores más comunes que se cometen que causan el & ldquo; falta 1 argumento posicional requerido: & lsquo; self & rsquo; & rdquo; los errores son:

  • Olvidar crear una instancia de un objeto de una clase
  • Usar la sintaxis incorrecta para crear una instancia de una clase

Analicemos cada una de estas causas individualmente.




Causa n. ° 1: Olvidar crear una instancia de un objeto

Se debe crear una instancia de un objeto antes de poder acceder a un método en una clase. < br>

Defina una clase que almacene información sobre un héroe en un videojuego:

El 81% de los participantes afirmaron que se sentían más seguros acerca de sus perspectivas laborales de tecnología después de asistir a un campamento de entrenamiento. Asóciese a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

A continuación, agregamos un < una href = "/ python-functions/">función a nuestra clase. Las funciones dentro de las clases se denominan métodos. Este método imprime el nombre de un jugador y su tipo de jugador:

 def show_player (self) : print ("Nombre del jugador:" + self.name) print ("Tipo de jugador:" + self.player_type) 

Intenta acceder a nuestra clase para que podamos crear un reproductor: & nbsp ;

 luke = Hero.show_player () 

Hemos creado un objeto que está asignado a la variable & ldquo; luke & rdquo ;. Este objeto se deriva de la clase Hero. Llamamos al método show_player () para mostrar información sobre el reproductor.


Ejecutemos nuestro código por completo y veamos qué sucede:

 Traceback (última llamada más reciente): Archivo "main.py", línea 10, en & lt; module & gt; luke = Hero.show_player () TypeError: show_player () falta 1 argumento posicional obligatorio: 'self' 

Nuestro código falla. Esto se debe a que no hemos creado una instancia de un objeto de Hero. Hero.show_player () no funciona porque no hemos creado un Hero cuya información mostrar.

Para resolver este error, primero creamos una instancia de un objeto antes de llamar a show_player () :

 luke = Hero (" Luke "," Mage ") luke.show_player () 

Ejecuta nuestro código nuevamente:

¡Nuestro código se ejecuta correctamente! Primero declaramos una varia ble llamado & ldquo; luke & rdquo; que almacena información sobre un jugador llamado Luke. El tipo de jugador de Luke es & ldquo; Mago & rdquo ;. Ahora que hemos creado una instancia de ese objeto, podemos llamar al método show_player () .




Causa # 2: instanciar incorrectamente una clase

El & ldquo; faltante 1 argumento posicional requerido: & lsquo; self & rsquo; & rdquo; Puede producirse un error cuando crea una instancia de una clase de forma incorrecta. Considere el siguiente código:

 luke = Hero luke.show_player () 

Si bien este código es similar a nuestra solución del último ejemplo, es incorrecto. Esto se debe a que no hemos agregado ningún paréntesis después de la palabra Héroe. Al omitir estos paréntesis, nuestro programa no sabe que queremos crear una instancia de una clase.

Resuelva este problema agregando paréntesis después de Hero y especificando los argumentos requeridos, & ldquo; name & rdquo; y & ldquo; player_type & rdquo ;:

 luke = Hero ("Luke", "Mage") luke.show_player ( ) 

Nuestro código ahora se ejecuta correctamente y devuelve información sobre nuestro reproductor:

 Nombre del jugador: Luke Tipo de jugador: Mago 



Conclusión

El & ldquo; falta 1 argumento posicional obligatorio: & lsquo; self & rsquo; & rdquo; Se genera un error cuando no crea una instancia de un objeto de una clase antes de llamar a un método de clase. Este error también se genera cuando crea una instancia incorrecta de una clase.


Para solucionar este error, asegúrese de crear una instancia de un objeto de una clase antes de intentar acceder a cualquiera de los métodos de esa clase. Luego, asegúrese de utilizar el método correcto sintaxis para crear una instancia de un objeto.

Ahora está listo para resolver este error común como un desarrollador experto en Python < / a>!





auto argumento de Python: StackOverflow Questions

Tutorials