On Mon, Feb 4, 2013 at 12:08 PM, Saul Spatz <saul.sp...@gmail.com> wrote: > class ScrolledCanvas(Frame): > def __init__(self, master, width, height, bg, cursor): > canv = self.canvas = Canvas(self, bg=bg, relief=SUNKEN) > > def __getattr__(self, name): > return getattr(self.canvas, name)
Trying to get my head around what you're doing here. Why are you inheriting Frame, but passing all attribute queries through to the Canvas? Why not inherit Canvas? It looks to me like you're going to have some kind of bootstrap problem no matter how you do it. You're creating a cyclic reference (you pass self to Canvas), so one way or another, you need to start the loop. Dunder methods (like __getattr__) are looked up in the class, not the instance, so you can't simply set it in the way you describe. I think your best bet is going to be the "set up a stub, then fill in the details" method, which is more or less what you're doing (a stubby __nonzero__). ChrisA -- http://mail.python.org/mailman/listinfo/python-list