TransWikia.com

Cómo resolver TypeError: unsupported format string passed to method.__format__ python

Stack Overflow en español Asked by Iván Knopoff on August 27, 2020

necesito que se me devuelva un texto que contenga nombre, puntaje, dificultad. Los primeros dos los toma bien, el problema es el tercero.
El código que tengo es:

def __init__(self, nombre, puntaje = 0, dificultad ='facil', avatar = None):
    self.__nombre = nombre
    self.__puntuacion = puntaje
    self.__dificultad = dificultad
    self.__avatar = avatar


def __str__(self):
    return '{:^15} {:5} {:^15} {:^5} {:^15}'.format(self.__nombre,' ', self.__puntuacion,' ',self.__dificultad)
#def infoJugador(self):

El error que sale es el del título = TypeError: unsupported format string passed to method.format

Sucede cuando se invoca este método

def actualizar_puntaje (puntaje,ventana):
listado_puntos =''
for p in range(len(puntaje.puntajes)):
    listado_puntos = listado_puntos + str(puntaje.puntajes[p]) + 'n'
    ventana['puntos'].update(value=listado_puntos)

One Answer

Lo resolví modificando así el infoJugador (sería el str)

def __str__(self):
    return f"{self.__nombre} - {self.__puntuacion} - {self.__dificultad}"

y lo invoco así:

for p in range(len(puntaje.puntajes)):
    listado_puntos = listado_puntos + str(puntaje.puntajes[p].infoJugador().upper()) + 'n'

Answered by Iván Knopoff on August 27, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP