Dynamic function execution

Cameron Laird claird at lairds.us
Sat Nov 25 18:58:00 EST 2006


In article <mailman.718.1164469686.32031.python-list at python.org>,
Fredrik Lundh  <fredrik at pythonware.com> wrote:
>Andy Wu wrote:
>
>> def func(seconds = None, minutes = None, hours = None):
>>     ...
>> 
>> In my program I can get a string object('seconds', 'minutes', 'hours')
>> to specify which parameter to use, the problem is I don't know how to
>> call the function.
>> 
>> Say I have a string 'minutes' and a integer 30, now I need to call the
>> func this way: func(minutes = 30), how do I do this?
>
>    func(**{"minutes": 30})
>
></F>
>

Now I'm confused:  what's the advantage of 

  def func(seconds = None, minutes = None, hours = None):
      print seconds
      print minutes
      print hours

  func(**{"minutes": 30})

over

  def func(seconds = None, minutes = None, hours = None):
      print seconds
      print minutes
      print hours

  func(minutes = 30)

?  Or am I missing the point that a better example of what 
Mr. Wu really wants is

  def func(seconds = None, minutes = None, hours = None):
      print seconds
      print minutes
      print hours

  dimension = "minutes"
  func(**{dimension: 30})

?



More information about the Python-list mailing list