用Python的方式来检查是否有东西存在?

2024-04-26 21:05:33 发布

您现在位置:Python中文网/ 问答频道 /正文

这是非常基本的,但我在编码,并开始怀疑是否有一个Python的方式来检查是否有东西不存在。如果这是真的,我会这样做:

var = 1
if var:
    print 'it exists'

但是,当我检查某个东西是否不存在时,我通常会这样做:

var = 2
if var:
    print 'it exists'
else:
    print 'nope it does not'

如果我只关心knIs有没有办法检查没有其他东西就不存在的话,这看起来是一种浪费?


Tags: 编码ifvarexists方式notitelse
3条回答

要检查是否定义了变量:

var = 2

try: 
    varz
except NameError:
    print("No varz")

检查它是否为None/False

if varz is None

……或者

if not varz

LBYL风格,“三思而后行”:

var_exists = 'var' in locals() or 'var' in globals()

EAFP风格,“请求宽恕比允许更容易”:

try:
    var
except NameError:
    var_exists = False
else:
    var_exists = True

在用Python编写代码时,更喜欢第二种样式(EAFP),因为它通常更可靠。

我认为你必须谨慎使用你的术语,是否有存在和评估为的东西是两个不同的东西。假设您想要后者,您可以简单地执行以下操作:

if not var:
   print 'var is False'

对于前者来说,它就不那么优雅了:

try:
   var
except NameError:
   print 'var not defined'

然而,我要做一个飞跃和冒险,无论是什么使您想要检查是否定义了变量,都可能以更优雅的方式解决。

相关问题 更多 >