如何检查元组是否有元素?

时间:2014-07-02 14:28:26

标签: python

我有一个例外,我试图获得args,但如果失败。

print hasattr(e, 'args')
print type(e.args)
print hasattr(e.args, '1')
print hasattr(e.args, '0')
print '1' in e.args
print '0' in e.args
print 1 in e.args
print 0 in e.args
print e.args[0]
print e.args[1]

打印:

True
<type 'tuple'>
False
False
False
False
False
False
Devices not found
4

2 个答案:

答案 0 :(得分:1)

您只需使用in运算符:

>>> try:
...   raise Exception('spam', 'eggs')
... except Exception as inst:
...   print inst.args
...   print 'spam' in inst.args
... 
('spam', 'eggs')
True

如果您的代码返回False,那么很可能1不是该异常的参数。也许发布引发异常的代码。

您可以通过0检查元组是否具有Nlen的位置。

答案 1 :(得分:0)

您可以检查元组的长度:

t = 1, 2, 3,
if len(t) >= 1:
    value = t[0]    # no error there

...或者您可以检查一下IndexError,我会说这是更加pythonic:

t = 1, 2, 3,
try:
    value = t[4]
except IndexError:
    # handle error case
    pass

后者是一个名为EAFP: Easier to ask for forgiveness than permission的概念,这是一种众所周知且常见的Python编码风格。