Why doesn't this work? :)

Jeremy Moles jeremy at emperorlinux.com
Fri Oct 28 14:02:29 EDT 2005


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

# -----------------------------------





More information about the Python-list mailing list