Handling NameError in a list gracefully
Chris Rebert
clp2 at rebertia.com
Mon Apr 20 16:46:35 EDT 2009
On Mon, Apr 20, 2009 at 1:36 PM, Jesse Aldridge <JesseAldridge at gmail.com> wrote:
> from my_paths import *
>
> def get_selected_paths():
> return [home, desktop, project1, project2]
>
> -------
>
> So I have a function like this which returns a list containing a bunch
> of variables. The real list has around 50 entries. Occasionally I'll
> remove a variable from my_paths and cause get_selected_paths to throw
> a NameError. For example, say I delete the "project1" variable from
> my_paths; now I'll get a NameError when I call get_selected_paths.
> So everything that depends on the get_selected_paths function is
> crashing. I am wondering if there is an easy way to just ignore the
> variable if it's not found. So, in the example case I would want to
> somehow handle the exception in a way that I end up returning just
> [home, desktop, project2].
> Yes, I realize there are a number of ways to reimplement this, but I'm
> wanting to get it working with minimal changes to the code. Any
> suggestions?
def get_selected_paths():
variables = "home desktop project1 project2".split()
vals = []
for var in variables:
try:
vals.append(getattr(my_paths, var))
except AttributeError:
pass
return vals
--
I have a blog:
http://blog.rebertia.com
More information about the Python-list
mailing list