为什么会出现AttributeError: 'NoneType'对象没有属性'something'?
我收到了一个错误信息,上面写着
AttributeError: 'NoneType' object has no attribute 'something'
我该如何理解这个信息呢?
一般来说,什么情况可能会导致这样的 AttributeError
,我该如何找到问题所在呢?
这是一个特殊的 AttributeError
情况。它需要单独处理,因为从代码中得到意外的 None
值有很多种方式,所以通常这是一个不同的问题;而对于其他的 AttributeError
,问题可能只是属性名称不对。
想了解 None
和它的类型 NoneType
,可以查看 什么是 None 值? 和 什么是 'NoneType' 对象?。
11 个回答
17
NoneType
是一种数据类型,它代表的值是 None
。在这个例子中,变量 lifetime
的值就是 None
。
一个常见的情况是,当你调用一个没有 return
的函数时,就会出现这种情况。
不过,还有很多其他方法也可以让一个变量的值变成 None。
142
你有一个变量,它的值是None(也就是没有值),然后你想去访问它的一个属性,叫做'something'。
foo = None
foo.something = 1
或者
foo = None
print(foo.something)
这两种情况都会导致一个错误,叫做AttributeError: 'NoneType'
449
NoneType的意思是,你原本以为自己在使用某个类或对象的实例,但实际上你得到的是None
。这通常意味着在之前的某个赋值或函数调用中出现了问题,导致它没有返回你预期的结果。