Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #44648
| Date | 2013-05-03 05:34 +0600 |
|---|---|
| Subject | Debugging difficulty in python with __getattr__, decorated properties and AttributeError. |
| From | "Mr. Joe" <titanix88@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1257.1367537690.3114.python-list@python.org> (permalink) |
[Multipart message — attachments visible in raw view] - view raw
Is there any way to raise the original exception that made the call to
__getattr__? I seem to stumble upon a problem where multi-layered attribute
failure gets obscured due to use of __getattr__. Here's a dummy code to
demonstrate my problems:
"""
import traceback
class BackupAlphabet(object):
pass
class Alphabet(object):
@property
def a(self):
return backupalphabet.a
def __getattr__(self, name):
if name == "b":
return "banana"
raise AttributeError(
"'{0} object has no attribute '{1}'"
.format(self.__class__.__name__, name))
alphabet = Alphabet()
backupalphabet = BackupAlphabet()
print(alphabet.a)
print(alphabet.b)
"""
Running the above code produces this:
"""
Traceback (most recent call last):
File "example.py", line 26, in <module>
print(alphabet.a)
File "example.py", line 20, in __getattr__
.format(self.__class__.__name__, name))
AttributeError: 'Alphabet object has no attribute 'a'
"""
While it's easy enough to identify the problem here, the traceback is
rather unhelpful in complex situations. Any comments?
Regards,
TB
Back to comp.lang.python | Previous | Next — Next in thread | Find similar | Unroll thread
Debugging difficulty in python with __getattr__, decorated properties and AttributeError. "Mr. Joe" <titanix88@gmail.com> - 2013-05-03 05:34 +0600
Re: Debugging difficulty in python with __getattr__, decorated properties and AttributeError. Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-05-03 00:20 +0000
Re: Debugging difficulty in python with __getattr__, decorated properties and AttributeError. "Mr. Joe" <titanix88@gmail.com> - 2013-05-03 13:52 +0600
Re: Debugging difficulty in python with __getattr__, decorated properties and AttributeError. Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-05-04 06:29 +0000
Re: Debugging difficulty in python with __getattr__, decorated properties and AttributeError. "Mr. Joe" <titanix88@gmail.com> - 2013-05-14 21:09 +0600
Re: Debugging difficulty in python with __getattr__, decorated properties and AttributeError. dieter <dieter@handshake.de> - 2013-05-15 08:15 +0200
Re: Debugging difficulty in python with __getattr__, decorated properties and AttributeError. "Mr. Joe" <titanix88@gmail.com> - 2013-05-15 22:38 +0600
Re: Debugging difficulty in python with __getattr__, decorated properties and AttributeError. dieter <dieter@handshake.de> - 2013-05-04 07:56 +0200
csiph-web