On Fri, 2005-10-28 at 14:50 -0400, Chris Lambacher wrote: > I think what you really want is: > > try: > # this will fail and be caught > # below, weeee > import foobar > > except ImportError, error: > class foobarclass: > def __getattr__(*args, **kargs): > return None > foobar = foobarclass() > > print foobar.bg > > foobar in your version is a class. By making it an instance, the __getattr__ > method is properly called. > > > -Chris
:) Well, that's what I am using. :) What I'm wondering is if the other method could work, of if it simply impossible in Python considering it's underlying implementation. > On Fri, Oct 28, 2005 at 02:02:29PM -0400, Jeremy Moles wrote: > > Jumping right into the code (which should speak for itself): > > > > # ----------------------------------- > > > > try: > > # this will fail and be caught > > # below, weeee > > import foobar > > > > except ImportError, error: > > class foobar: > > @staticmethod > > def __getattr__(*args, **kargs): > > return None > > > > print foobar.bg > > > > # ----------------------------------- > > > > This doesn't work and I'm just curious as to why? I can, of course, make > > __getattr__ non-static, instantiate a foolbar object, and everything > > works; but, the "idea" above seems cleaner and whatnot. :) > > > > Am I misunderstanding something fundamental about the builtin __* > > functions? Can they not be "static?" > > > > No rush on this, just curious. I'm using the following in a more general > > way, and it works fine for now... :) > > > > # ----------------------------------- > > > > try: > > import foobar > > > > except ImportError, error: > > class Foobar: > > def __getattr__(*args, **kargs): > > return None > > > > foobar = Foobar() > > > > print foobar.bg > > > > # ----------------------------------- > > > > > > -- > > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list