[Chicago] How do you troubleshoot cgi errors?
varmaa at gmail.com
Mon Jul 23 21:00:40 CEST 2007
A book that documents all of these features of Python very nicely is
Dave Beazley's "Python Essential Reference":
It's also very useful as a concise introduction to the language.
On 7/23/07, Ian Bicking <ianb at colorstudy.com> wrote:
> David Rock wrote:
> > * Ian Bicking <ianb at colorstudy.com> [2007-07-23 12:28]:
> >> It's actually a tee for any kind of object. Any method that is called
> >> gets called on all the sub-objects (self.files in this case). It only
> >> returns the return value of the last object, but for files you write to
> >> there's no meaningful return values anyway. Similarly it doesn't handle
> >> attributes, since it treats everything like a method.
> >> The __getattr__ method is called when the object has no other attribute
> >> -- i.e., if you call obj.foo, then obj.__getattr__('foo') is called (if
> >> the object has a __getattr__ method, and no foo attribute). When you
> >> call obj.foo(x), then obj.__getattr__('foo')(x) is called.
> >> In ReplStdOut whenever you call obj.anything, you get a function back.
> >> When you call that function, it gets subobject.anything from every
> >> subobject, and calls that with the arguments you pass in. The function
> >> it returns is called a "closure", because the function object remembers
> >> the value of "self" and "attr" even though they aren't explicit
> >> arguments to the function. That's all a closure really is -- a function
> >> that remembers some extra values.
> > Wowsers. I'm gonna have to chew on that one a little bit. I really
> > like it, though. I don't suppose you have any ideas of where to look
> > for further reading on the concepts, do you?
> I guess there's a bunch of pieces. There's getattr(), which you can
> read up on here:
> I don't see a lot online on __getattr__. Huh. Maybe that's why I
> encounter so many people who are surprised about it. The reference docs
> for that are here: http://python.org/doc/current/ref/attribute-access.html
> For first class functions you might look at Dive Into Python's
> functional section:
> For closures I'm not sure... some of the material out there is really
> more complex than it needs to be. Maybe just reflect on this, the
> simplest of closures:
> def make_returner(return_value):
> def returner():
> return return_value
> return returner
> x = make_returner(1)
> y = make_returner(2)
> But I dunno. There's a lot of debate out there about closures,
> functional programming, etc, none of which illuminates the issue. So
> try not to get distracted by that stuff.
> Ian Bicking : ianb at colorstudy.com : http://blog.ianbicking.org
> : Write code, do good : http://topp.openplans.org/careers
> Chicago mailing list
> Chicago at python.org
More information about the Chicago