É possível listar todas as funções em um módulo? [duplicado]

Esta pergunta já tem uma resposta aqui:

Como listar todas as funções em um módulo Python? 15 respostas

Eu defini um arquivo .py neste formato:

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

Eu o importo de outro arquivo:

main.py
from foo import * 
# or
import foo

É possível listar o nome de todas as funções, por exemplo["foo1", "foo2", "foo3"]?

Obrigado pela sua ajuda, fiz uma aula para o que eu quero, pls comentar se você tiver sugestão

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]