parameter name conflict. How to solve?
Steven Bethard
steven.bethard at gmail.com
Tue Mar 8 01:51:18 EST 2005
Bo Peng wrote:
> 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?
Yes, but you probably don't want to go that way. Can you explicitly
indicate the location of the 'output' function? e.g.:
py> def output(output=''):
... print output
...
py> def func(output=''):
... __import__(__name__).output(output)
...
py> func('abc')
abc
or possibly:
py> def func(output=''):
... globals()['output'](output)
...
py> func('abc')
abc
This is easier if output is in another module -- you can just write
something like:
outputmodule.output(output)
STeVe
More information about the Python-list
mailing list