C'è un modo per inizializzare tutte le classi da un modulo python in una lista di oggetti senza nome?Inizializza tutte le classi di un modulo in oggetti senza nome in una lista
Esempio Ho un modulo di rules
che contiene tutte le classi bambino da una regola di classe. A causa di questo, sono certo che saranno tutti implementare un metodo run()
e avranno un attributo name
che viene generato durante la chiamata di __init__
mi piacerebbe avere una lista di oggetti avviati dinamicamente da quelle classi. Inizializzando dinamicamente intendo che non devono essere nominati esplicitamente.
Le domande sono:
E 'possibile scorrere tutte le classi in un modulo?
È possibile avviare un oggetto senza nome?
Meglio della mia risposta. Puoi usare 'inspect.isclass()' per evitare il 'TypeError'. –
@AntonisChristofides True, puoi usare 'inspect.isclass()' come filtro. Cerco comunque di evitare di utilizzare qualsiasi cosa dal modulo 'inspect' nel codice di produzione. –
Puoi anche usare 'isinstance (value, type)' per assicurarti di avere una classe. (Dovresti anche controllare 'types.ClassType' se devi supportare le classi vecchio stile, ma preferirei evitare quelle.) – Blckknght