You should define the function first and then call it.

 def something(i):
     return i

a = something(5)

If you want a reference to the function somewhere else you can do this:

global alias = something

print alias(i)



On Tue, Jun 12, 2012 at 1:53 PM, Julio Sergio <julioser...@gmail.com> wrote:

> I'm puzzled with the following example, which is intended to be a part of a
> module, say "tst.py":
>
>  a = something(5)
>
>  def something(i):
>      return i
>
>
>
> When I try:
>
> ->>> import tst
>
> The interpreter cries out:
>
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "tst.py", line 11, in <module>
>    a = something(5)
> NameError: name 'something' is not defined
>
> I know that changing the order of the definitions will work, however there
> are
> situations in which referring to an identifier before it is defined is
> necessary, e.g., in crossed recursion.
>
> So I modified my module:
>
>  global something
>
>  a = something(5)
>
>
>  def something(i):
>      return i
>
>
> And this was the answer I got from the interpreter:
>
> ->>> import tst
>
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "tst.py", line 12, in <module>
>    a = something(5)
> NameError: global name 'something' is not defined
>
>
> Do you have any comments?
>
> Thanks,
>
> --Sergio.
>
>
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to