Tengo una clase de tupla con nombre en Python
class Town(collections.namedtuple('Town', [
'name',
'population',
'coordinates',
'population',
'capital',
'state_bird'])):
# ...
Me gustaría convertir las instancias de Town en diccionarios. No quiero que esté rígidamente vinculado a los nombres o al número de campos en una ciudad.
¿Hay alguna manera de escribirlo para poder agregar más campos o pasar una tupla con un nombre completamente diferente y obtener un diccionario?
No puedo alterar la definición de clase original como está en el código de otra persona. Entonces necesito tomar una instancia de una ciudad y convertirla en un diccionario.
dictlugar de 'namedtuple' y pasar la namedtuple al inicializador. Recuerda que si estás acostumbrado a Cxx, class Town(x)no es el constructor, def __init__(self, *args, **kwargs)dentro está.
dires solo un python incorporado ... puede ejecutarlo en cualquier objeto de python, en una consola o en un script (donde devuelve una lista que puede imprimir o hacer lo que sea), y devolverá una lista de (casi ) todos los atributos del objeto. útil si está tratando de descubrir cómo funciona un objeto desconocido.
dircomando, que le mostrará los campos para cualquier objeto ... que hubiera mostrado la_asdictfunción directamente.