¿Es posible enumerar todas las funciones en un módulo? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo enumerar todas las funciones en un módulo de Python? 15 respuestas

Definí un archivo .py en este formato:

foo.py
def foo1(): pass
def foo2(): pass
def foo3(): pass

Lo importo desde otro archivo:

main.py
from foo import * 
# or
import foo

¿Es posible enumerar el nombre de todas las funciones, p.["foo1", "foo2", "foo3"]?

Gracias por su ayuda, hice una clase para lo que quiero, por favor comente si tiene alguna sugerencia

class GetFuncViaStr(object):
    def __init__(self):
        d = {}
        import foo
        for y in [getattr(foo, x) for x in dir(foo)]:
            if callable(y):
               d[y.__name__] = y
    def __getattr__(self, val) :
        if not val in self.d :
           raise NotImplementedError
        else:
           return d[val]