importando funções - 'module' object is not callable

2,320 views
Skip to first unread message

Arnaldo Russo

unread,
Nov 17, 2011, 1:17:17 PM11/17/11
to python-brasil
Oá pessoal,


Por mais simples que seja a função que tenho definido, quando chamo ela por dentro de um script, ela falha com esse erro:

TypeError: 'module' object is not callable


Crio uma função blah.py:

#!/usr/bin/python

# -*- coding: latin-1 -*-

def blah(x):

    a = x+2

    b = a *2

    return a+b


Depois, no diretorio onde está a função:
cd /local/onde/esta/o/script/

em um script: script.py

#!/usr/bin/python

# -*- coding: latin-1 -*-]


import blah

blah(2)


Ao rodar o "script.py", através do Ipython, ou pelo proprio terminal (python script.py) ele devolve o erro, logo após executar "blah(2)"

Já, se eu rodo a função declarada pelo Ipython, obviamente ele reconhece.

O que estou fazendo de errado?

Muito obrigado,
Arnaldo.

----
Arnaldo D'Amaral Pereira Granja Russo
Lab. de Estudos dos Oceanos e Clima
Instituto de Oceanografia
Universidade Federal do Rio Grande
e-mail arnaldorusso [at] gmail [dot] com



João Júnior

unread,
Nov 17, 2011, 1:21:19 PM11/17/11
to python...@googlegroups.com
para funcionar você deve fazer a chamada assim:
blah.blah(2)

Isso acontece porque sua função possui o mesmo nome do módulo que a
contém, e você importou o modelo completo daí tem que usar
nomedomodulo.suafuncao se quiser usar apenas o nome da função, você
deve fazer assim:
from blah import blah

Abraços.

Em 17 de novembro de 2011 16:17, Arnaldo Russo
<arnald...@gmail.com> escreveu:

> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com
>

--
João Júnior
Matemático Computacional - Computational Mathematician

E-mail: joaoju...@gmail.com
Fone: +55 (31) 9642-7061
www.dcc.ufmg.br/~jcaj
http://br.linkedin.com/in/joaojunior

Juca Crispim

unread,
Nov 17, 2011, 1:22:51 PM11/17/11
to python...@googlegroups.com
Oi, Arnaldo. Tudo bem?

O que acontece é o seguinte:
Quando você está em script.py e dá um import bla, você está importando o módulo bla (que no caso é o arquivo bla.py). Pra funcionar do jeito que você quer você poder fazer:

from bla import bla
bla(2)
ou pode fazer também:

import bla
bla.bla(2)

É isso...

Arnaldo Russo

unread,
Nov 17, 2011, 1:30:10 PM11/17/11
to python...@googlegroups.com
Muito obrigado pessoal!

Comi mosca! heehehe
----
Arnaldo D'Amaral Pereira Granja Russo
Lab. de Estudos dos Oceanos e Clima
Instituto de Oceanografia
Universidade Federal do Rio Grande
e-mail arnaldorusso [at] gmail [dot] com
tel   (53) 3233-6855



Reply all
Reply to author
Forward
0 new messages