为什么要获取attributeRor:“NoneType”对象没有属性“something”?

2024-03-19 02:54:32 发布

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

我一直有个错误说

AttributeError: 'NoneType' object has no attribute 'something'

我的代码太长了,不能在这里发布。什么样的一般情况会导致这个AttributeError,什么是NoneType应该是什么意思,我怎样才能缩小范围?


Tags: no代码object错误情况attributesomethingattributeerror
3条回答

NoneType意味着,您实际上得到了None,而不是您认为正在使用的类或对象的实例。这通常意味着上面的赋值或函数调用失败或返回意外结果。

其他人已经解释了NoneType是什么以及结束它的一种常见方式(即,无法从函数返回值)。

另一个常见的原因是不希望在None中对可变对象分配就地操作。例如:

mylist = mylist.sort()

列表的sort()方法对列表进行就地排序,即修改mylist。但该方法的实际返回值是None,而不是已排序的列表。所以你刚刚把None分配给mylist。如果您下一次尝试这样做,比如说,mylist.append(1)Python将给您这个错误。

您有一个等于None的变量,并且您正试图访问其名为“something”的属性。

foo = None
foo.something = 1

或者

foo = None
print foo.something

两者都会产生AttributeError: 'NoneType'

相关问题 更多 >