auto argumento 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 " falta 1 argumento posicional requerido: " self " & 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: " self "

Los argumentos posicionales se refieren a datos que son pasado a una funciòn. En una clase, cada funciòn debe recibir el valor " self & rdquo ;. El valor de " self " es similar a " this " en JavaScript. " yo mismo " 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 " self " 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 " falta 1 argumento posicional requerido: " self " " 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:

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

Hemos creado un objeto que está asignado a la variable " 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:

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 () :

Ejecuta nuestro còdigo nuevamente:

¬°Nuestro còdigo se ejecuta correctamente! Primero declaramos una varia ble llamado " luke " que almacena informaciòn sobre un jugador llamado Luke. El tipo de jugador de Luke es " 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 " faltante 1 argumento posicional requerido: " self " " Puede producirse un error cuando crea una instancia de una clase de forma incorrecta. Considere el siguiente còdigo:

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, " name " y " player_type & rdquo ;:

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

Conclusiòn

El " falta 1 argumento posicional obligatorio: " self " " 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>!