Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #38113
| References | <095a0432-f8a4-40b4-96ed-1588896fba66@googlegroups.com> |
|---|---|
| Date | 2013-02-04 12:28 +1100 |
| Subject | Re: __getattr__ Confusion |
| From | Chris Angelico <rosuav@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1319.1359941331.2939.python-list@python.org> (permalink) |
On Mon, Feb 4, 2013 at 12:08 PM, Saul Spatz <saul.spatz@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
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
__getattr__ Confusion Saul Spatz <saul.spatz@gmail.com> - 2013-02-03 17:08 -0800
Re: __getattr__ Confusion Chris Angelico <rosuav@gmail.com> - 2013-02-04 12:28 +1100
Re: __getattr__ Confusion Terry Reedy <tjreedy@udel.edu> - 2013-02-03 21:47 -0500
Re: __getattr__ Confusion Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-02-04 04:35 +0000
Re: __getattr__ Confusion Saul Spatz <saul.spatz@gmail.com> - 2013-02-04 05:44 -0800
Re: __getattr__ Confusion Peter Otten <__peter__@web.de> - 2013-02-04 15:15 +0100
Re: __getattr__ Confusion Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-02-05 01:46 +1100
Re: __getattr__ Confusion Saul Spatz <saul.spatz@gmail.com> - 2013-02-04 09:29 -0800
Re: __getattr__ Confusion Peter Otten <__peter__@web.de> - 2013-02-04 19:23 +0100
Re: __getattr__ Confusion Chris Angelico <rosuav@gmail.com> - 2013-02-05 12:00 +1100
Re: __getattr__ Confusion Saul Spatz <saul.spatz@gmail.com> - 2013-02-04 09:29 -0800
csiph-web