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.
dict
lugar 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á.
dir
es 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.
dir
comando, que le mostrará los campos para cualquier objeto ... que hubiera mostrado la_asdict
función directamente.