Python 如果测试为“无”,则会抛出一个属性不存在的错误';不存在

Python 如果测试为“无”,则会抛出一个属性不存在的错误';不存在,python,Python,正如你在第1行看到的,我正在检查“网络”是否不存在。但是,当它不存在时,它会失败并抛出一个python错误。我有点不知道这是怎么发生的。1号线不应该抓住这个问题吗 当其中一条记录没有定义“网络”时,实际代码会正确地遍历大约10条记录,然后失败。您可以使用内置python函数hasattr: ----> 1 if person.network is None: 2 print('person.network does not exist') 3 Attri

正如你在第1行看到的,我正在检查“网络”是否不存在。但是,当它不存在时,它会失败并抛出一个python错误。我有点不知道这是怎么发生的。1号线不应该抓住这个问题吗


当其中一条记录没有定义“网络”时,实际代码会正确地遍历大约10条记录,然后失败。

您可以使用内置python函数hasattr:

----> 1 if person.network is None:
      2     print('person.network does not exist')
      3 

AttributeError: 'Person' object has no attribute 'network'

您可以使用内置python函数hasattr:

----> 1 if person.network is None:
      2     print('person.network does not exist')
      3 

AttributeError: 'Person' object has no attribute 'network'

值为
None
的实例属性与它根本不存在(您的案例)之间存在差异。要正确检查实例属性是否存在,可以使用
hasattr()
方法:

    if hasattr(person, "network") : 
如果需要检索该值,可以使用
getattr()
安全地检索:


最后一个参数是在person没有
网络
属性的情况下返回的默认值。

值为
的实例属性与它根本不存在(您的案例)之间存在差异。要正确检查实例属性是否存在,可以使用
hasattr()
方法:

    if hasattr(person, "network") : 
如果需要检索该值,可以使用
getattr()
安全地检索:


最后一个参数是在person没有
网络属性时返回的默认值。

不存在的属性与设置为“无”的属性不同。您可能希望执行类似操作。使用
hasattr()
听起来像是与特定代码相关的数据相关问题。您需要提供更多上下文来调试错误实例引发异常的原因。不存在的属性与设置为“无”的属性不同。您可能希望执行类似操作。使用
hasattr()
听起来像是与特定代码相关的数据相关问题。您需要提供更多的上下文来调试buggy实例引发异常的原因。非常感谢您的澄清!非常感谢您的澄清!