[Chicago] How do you troubleshoot cgi errors?

David Rock david at graniteweb.com
Mon Jul 23 19:35:29 CEST 2007

* 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?

Thanks again.

David Rock
david at graniteweb.com

More information about the Chicago mailing list