[thread moved, since I can't put in proper References headers, anyway, just by looking at the archive] > 1) I rewrite the stuff that went into exceptions.py in C, and stick it > in the _exceptions module. I don't much like this idea, since it > kills the advantage noted above. >2) I leave the stuff that's in C already in C. I add C __str__ methods > to AttributeError and NameError, which dispatch to helper functions > in the python 'exceptions' module, if that module is available. >Which is better, or is there a third choice available? There is a third choice: Patch AttributeError afterwards. I.e. in site.py, say _AttributeError_str(self): code AttributeError.__str__ = _AttributeError_str Guido said > This kind of user-friendliness should really be in the tools, not in > the core language implementation! And I think Nick's patch exactly follows this guideline. Currently, the C code raising AttributeError tries to be friendly, formatting a string, and passing it to the AttributeError.__init__. With his patch, the AttributeError just gets enough information so that tools later can be friendly - actually printing anything is done in Python code. Fred said > I see no problem with the functionality from Nick's patch; this is > exactly te sort of thing what's needed, including at the basic > interactive prompt. I agree. Much of the strength of this approach is lost if it only works inside tools. When I get an AttributeError, I'd like to see right away what the problem is. If I had to fire up IDLE and re-run it first, I'd rather stare at my code long enough to see the problem. Regards, Martin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4