What's the use of changing func_name?
Steven Bethard
steven.bethard at gmail.com
Thu May 19 02:33:42 EDT 2005
could ildg wrote:
> Thank you for your help.
> I know the function g is changed after setting the func_name.
> But I still can't call funciton g by using f(), when I try to do
> this, error will occur:
> <code>
>
>>>>g.func_name="f"
>>>>print g
>
> <function f at 0x00B2CEB0>
>
>>>>f()
>
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> NameError: name 'f' is not defined
> </code>
> Since the name of g is changed into f, why can't I call it by using f()?
> Should I call it using f through other ways? Please tell me. Thanks~
You're confusing "the func_name attribute of the function object" with
"one of the names to which the function object is bound".
If you want to be able to invoke the-function-formerly-known-as-g using
the name 'f', you don't want to change the func_name attribute, you want
to add 'f' as a name bound to the function object. In Python, name
binding is accomplished through the assignment statement:
py> f = g
py> f()
decorating
this is in function g
What is is you're actually trying to do here?
STeVe
More information about the Python-list
mailing list