我正在使用谷歌某些人编写的图书馆与他们的Apps服务进行互动。由于某种原因,代码不能完全正常工作,我最终得到以下错误
TypeError: 'NoneType' object has no attribute '__getitem__'
或
AttributeError: 'NoneType' object has no attribute 'text'
因此我确实使用了一个包装函数来检查该元素是否具有一个名为text的属性。
这是他们写的功能。
def safeElementText(element):
if hasattr(element, 'text'):
return element.text
return ''
我不是Python的真正专家,但对我来说,似乎元素已经作为NoneType到达。但是,我没有机会更改他们的代码,所以我通过这种方式修改代码
def safeElementText(element):
if element is None:
return 'ssss'
if hasattr(element, '__getitem__'):
return 'aaa'
if hasattr(element, 'text'):
return element.text
return ''
我本可以解决问题。不是这种情况。这是否意味着根本无法拦截NoneType?