però per usare getattr() devo aver già l'oggetto, io prima devo importare il modulo e poi creare l'oggetto. Il nome del modulo e della classe sono contenuti in variabili.
Mi ha incuriosito questo post, incuriosito perché non riesco ad immaginare lo scopo di un programma che non sappia, a priori, quale funzioni e metodi utilizzare ... "come farebbe a funzionare?" è la domanda che mi viene spontanea.
Tale curiosità mi ha portato a fare alcune ricerche, su stackoverflow ho trovato una discussione, direi interessante, titolata "
Parsing python file for all methods and classes" che, unita ai metodi di
pkgutil.iter_modules(), forse, potrebbe essere utile ... magari, i metodi e funzioni altre di pkgutil, anche di più.
In ogni caso, iter_modules() permette di ottenere il pathdir ed il nome del modulo, nell'esempio sotto, di tutti quelli disponibili in un venv (limitato, ovvio)
>>> import pkgutil
>>> pkgutil.iter_modules()
<generator object iter_modules at 0x7fed9be857b0>
>>> list_mod = pkgutil.iter_modules()
>>> for m in list_mod:
... print(m)
...
ModuleInfo(module_finder=FileFinder('/usr/lib/python3.8'), name='__future__', ispkg=False)
ModuleInfo(module_finder=FileFinder('/usr/lib/python3.8'), name='_bootlocale', ispkg=False) ...
Magari può essere utile, segnalo.
Ciao