On Mon, Jan 12, 2009 at 4:39 PM, wormwood_3 <wormwoo...@yahoo.com> wrote: > Hello all, > > I have used *args and **kwargs to have a function accept optional > parameters, but is there a lazy way to optionally pass parameters? For > example, say my script can accept a number of parameters for a database > connection, such as user, password, and database name. The function that > makes the MySQL call has a default for user, say "root". So if the user > didn't pass in a value for the user option, I don't want to pass it to the > function doing the MySQL call. I don't want to have to do: > > if options.user: > do_mysql_query(user) > else: > do_mysql_query() > > and so on for each possible option. Is there a better way?
You would have to put the options into a collection, a list or dict or class. You can use *args and **kwargs at the point of call as well as in a function definition. What about having the defaults in the options object and just passing it to the function? do_mysql_query(options) or pass the options and have the function use code like user = options.user or 'root' Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor