This is pretty basic but I was coding and started wondering if there was a pythonic way to check if something does not exist. Here's how I do it if its true:
var = 1 if var: print 'it exists'
but when I check if something does not exist, I often do something like this:
var = 2 if var: print 'it exists' else: print 'nope it does not'
Seems like a waste if all I care about is knIs there a way to check if something does not exist without the else?
This question is tagged with
~ Asked on 2012-02-22 06:29:29
LBYL style, "look before you leap":
var_exists = 'var' in locals() or 'var' in globals()
EAFP style, "easier to ask forgiveness than permission":
try: var except NameError: var_exists = False else: var_exists = True
Prefer the second style (EAFP) when coding in Python, because it is generally more reliable.
~ Answered on 2012-02-22 06:40:07
I think you have to be careful with your terminology, whether something exists and something evaluates to False are two different things. Assuming you want the latter, you can simply do:
if not var: print 'var is False'
For the former, it would be the less elegant:
try: var except NameError: print 'var not defined'
I am going to take a leap and venture, however, that whatever is making you want to check whether a variable is defined can probably be solved in a more elegant manner.
~ Answered on 2012-02-22 06:32:02