On Mon, 09 Mar 2009 04:22:57 -0700, W. eWatson wrote: > Marc 'BlackJack' Rintsch wrote: >> On Sun, 08 Mar 2009 22:20:09 -0700, W. eWatson wrote: >> >>> You didn't answer my question why entry is necessary at all. The >>> original author thought it was necessary to return entry. I'll give >>> you a peek at a segment of the code I'm working with here: >>> >>> class Enter_Data_Dialog(tkSimpleDialog.Dialog): >>> >>> def __init__(self, parent, sdict): >>> self.sdict = sdict >>> tkSimpleDialog.Dialog.__init__(self, parent) >>> >>> def body(self,master): >>> self.title("Set a Number Entry Dialog") >>> >>> Label( master, text="Number ").grid(row=0, sticky=W) >>> self.anumberVar = StringVar() >>> entry = Entry(master, width=10, >>> textvariable=self.anumberVar).grid(row=0, >> column=1) >>> self.anumberVar.set( "%d" % self.sdict["anumber"] ) >>> >>> return entry >> >> `entry` is unnecessary here. But that was not obvious from your >> previous example, as you trimmed the code. Now it is clear that >> `entry` is always `None` because that's what `grid()` returns. >> >> But according to the docs this method should return the widget, that >> should get the focus, so maybe the author really wanted to return the >> `Entry` instance here, instead of `None`. > > He's got to return something, because he uses it upon return, as here:
`entry` is always `None`, so it is the same as returning nothing because every function has an implicit ``return None`` at the end. > def Set_Enter_Data(self): > sdict = {} > sdict[ "ok" ] = False > sdict[ "anumber" ] = self.anumber > dialog = Enter_Data_Dialog( self.master, sdict ) <--- returning That's not a call to the `body()` method so that ``return`` is irrelevant here. Here an instance of `Enter_Data_Dialog` is created. No ``return`` involved. BTW if this is really just a dialog to enter a number, the functions `askinteger()` or `askfloat()` from the `tkSimpleDialog` module can be used. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list