MRAB wrote:
Alf P. Steinbach wrote:
Hi all.
I'm just learning Python from scratch, on my own. Apologies if this
question is too newbie... Or perhaps answered in some FAQ (where?).
Here's my original code for simple starter program, using the
ActivePython implementation in Windows XP Prof, Python version is 2.6:
<code>
import Tkinter
window = Tkinter.Tk()
window.title( "A fixed size ellipse..." )
window.geometry( "350x200" ) # Client area size, not window
size.
window.resizable( width = 0, height = 0 )
canvas = Tkinter.Canvas( window, bg = "white" )
bbox = 2, 2, 347, 197 # Pixel coors left, top,
right, bottom
canvas.create_oval( bbox, fill = "PeachPuff" )
canvas.pack() # Fill the entire client area,
please.
window.mainloop() # Process events until window
is closed.
</code>
It worked nicely, and I thought this code was fairly perfect until I
started studying the language reference.
It seems that formally correct code should apply the scatter operator
to the tuple, like this:
canvas.create_oval( *bbox, fill = "PeachPuff" )
And this /also/ works nicely!
I think it's this latter that is correct, and that the former just
worked by accident, due to e.g. the way that some C function parses
arguments or such?
But I'm unable to figure it out, so, what's correct (both? one?), and
assuming it's the latter that's correct, would the first version still
work in practice regardless of Python / Tkinter implementation?
I've looked at the source in Tkinter.py. The positional arguments are
collected and then flattened into a tuple (tuples and lists are
'scattered').
Huh. I would have said 'gathered'. Must be my FoxPro days sneaking up
on me. *Shudder*
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list