parameter name conflict. How to solve?

Pierre Barbier de Reuille pierre.barbier at cirad.fr
Tue Mar 8 08:38:30 EST 2005


Bo Peng a écrit :
> Dear list,
> 
> If you ask: why do you choose these names? The answer is: they need to 
> be conformable with other functions, parameter names.
> 
> I have a function that pretty much like:
> 
> def output(output=''):
>   print output
> 
> and now in another function, I need to call output function, with again 
> keyword parameter output
> 
> def func(output=''):
>   output(output=output)
> 
> Naturally, I get 'str' object is not callable. Is there a way to tell 
> func that the first output is actually a function? (like in C++, 
> ::output(output) )
> 
> Thanks.
> Bo

What I'd suggest is :

def func(output=''):
   gobals()["output"](output=output)

that way, the function resolution is still dynamic, but you explicitly 
ask for a name global and not local ...

Pierre



More information about the Python-list mailing list