Passing items of a lsit as arguments
Jeff Epler
jepler at unpythonic.net
Fri Mar 26 23:04:22 EST 2004
On Fri, Mar 26, 2004 at 09:31:47PM +0000, Tobias Pfeiffer wrote:
> Hi!
>
> I want to call a function that was defined with *args in the header, e.g.
> the Tkinter.Canvas.create_polygon function. I got the coordinates in a
> long list but how can I achieve that every item in this list is passed as
> a single parameter?
>
> Example:
> bla = [(1,2), (3,4), (5,6), ...]
> has to become
> create_polygon((1,2), (3,4), (5,6), ..., fill=blue)
You can call the functions with the arguments you want this way:
create_polygon(*bla + (...,), **{'fill'=blue})
However, Tkinter.Canvas is forgiving in the way it accepts arguments.
For instance, this works just fine:
>>> c.create_polygon([(10, 10), (10, 30), (30, 30), (30, 10)], fill="blue")
or even
>>> c.create_polygon([40, 40, 60, 40, 60, 60, 40, 60], fill="green")
so just write '...create_polygon(bla, ..., fill=blue)'.
Jeff
More information about the Python-list
mailing list