Well, now every attr access goes thru __getattr__-method, so this could cause situations which give not so clear diagnostics: ----------------------------------------------------------------- Python 2.2a3 (#1, Sep 26 2001, 22:42:46) [GCC egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)] on linux2 Type "help", "copyright", "credits" or "license" for more information. HELP loaded. Readline loaded. History loaded. >>> class A: ... def aa(self): ... print self ... >>> class B(A): ... def __getattr__(self, x): ... print "getattr:", x ... >>> b = B() >>> b.aa getattr: __repr__ Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: object is not callable: None ----------------------------------------------------------------- The problem above is that __repr__ can't be called because __getattr__ intercepts it's call, giving None. Could something be done with this to make it easy to trace such kinds of problems? Also, the question is what is the proper way (1 and only 1 way) to check if attribute exists inside __getattr__ method? How can it be done by one simple check like: def __getattr__(self, attr): if hasattr(self, attr): .... Or do I need some other tricks? Sincerely yours, Roman Suzi -- _/ Russia _/ Karelia _/ Petrozavodsk _/ rnd@onego.ru _/ _/ Sunday, September 30, 2001 _/ Powered by Linux RedHat 6.2 _/ _/ "Killer Rabbit's Motto: "Lettuce Prey."" _/
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