Why doesn't this work? :)

Jeremy Moles jeremy at emperorlinux.com
Fri Oct 28 15:28:36 EDT 2005


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




More information about the Python-list mailing list