How to check the exists of a name?
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Sun Oct 18 04:19:50 EDT 2009
On Sat, 17 Oct 2009 23:30:02 -0700, StarWing wrote:
> Sometimes I want to make a simple flags. and i need to check there is a
> name in current scope or not (that is, we can visit this name, no matter
> where is it). and how to do that in python?
(1) Use a sentinel:
myname = None # always exists
...
# much later
if myname is None:
print "initialising myname"
else:
process(myname)
(2) Try it and see:
try:
myname
except NameError:
print "myname does not exist"
else:
print "myname exists"
(3) Look Before You Leap:
# inside a class:
'myname' in self.__dict__ or self.__class__.__dict__
# better, because it uses inheritance and supports __slots__:
hasattr(self, 'myname')
# inside a function
'myname' in locals()
'myname' in globals()
--
Steven
More information about the Python-list
mailing list