On 1/30/11 9:51 AM, Gerald Britton wrote: > 1. If you had to choose between approaches 1 and 2, which one would > you go for, and why?
Neither. Ideally, I'd tweak the API around so the deeply nested
structure isn't something I need to access regularly. But! If you can't
do that, I'd do something like:
--- start
from contextlib import contextmanager
class Item(object): pass
deeply = Item()
deeply.nested = Item()
deeply.nested.thing = Item()
@contextmanager
def my(thing):
yield thing
with my(deeply.nested.thing) as o:
o.hello = 1
print deeply.nested.thing.hello
--- end
That's a dummy context-manager which basically does nothing: it just
"abuses" the context manager protocol to basically make a local variable
and indent its usage. Its really just a run-around and slightly less
efficient to do:
> _o = some.deeply.nested.object
> _o.method(_o.value)
But with the whitespace added on.
Personally, I'd usually just make a local variable and skip any tricks.
--
Stephen Hansen
... Also: Ixokai
... Mail: me+list/python (AT) ixokai (DOT) io
... Blog: http://meh.ixokai.io/
signature.asc
Description: OpenPGP digital signature
-- http://mail.python.org/mailman/listinfo/python-list
