StringVar followup question

Gordon McMillan gmcm at hypernet.com
Thu Mar 16 15:05:31 CET 2000


Timothy Grant wrote:

> OK, now I'm really going to show my ignorance.
> 
> In general, I have been writing my code like this:
> 
> import mod1
> import mod2
> 
> class def1:
>         self.a = StringVar()
>         self.b = StringVar()

Is that for real, or just email-sloppiness? There is no "self" at 
class scope. Top level statements in a class (usually just 
method "def"s) are evaluated at parse time. Ignoring the "self", 
this would (1) mean that StringVar() was evaluated before a tk 
instance exists, and (2) make all instances of def1 refer to the 
same StringVars. 
 
> class def2:
>         self.x = StringVar()
>         self.y = StringVar()
> 
> if __name__ == '__main__':
>         root = Tk()
>         Pmw.initialise(root)
> 
>         x = def1(root)
> 
>         root.mainloop()
> 
> I thought the above would would initialize my instance of Tk create an
> instance of my base class and go.  However, it appears that Python is
> generating its errors on parsing the class def1, which happens before I
> actually initialize Tk and Pmw. What would be the correct way to
> structure this thing?
> 
> Thanks.
> 
> 
> -- 
> Stand Fast,
>     tjg.
> 
> Chief Technology Officer              tjg at exceptionalminds.com
> Red Hat Certified Engineer            www.exceptionalminds.com
> Avalon Technology Group, Inc.                   (503) 246-3630
> >>>>>>>>>>>>Linux...Because rebooting isn't normal<<<<<<<<<<<<
> 
> -- 
> http://www.python.org/mailman/listinfo/python-list



- Gordon




More information about the Python-list mailing list