2024-03-19 02:54:32 发布
网友
我一直有个错误说
AttributeError: 'NoneType' object has no attribute 'something'
我的代码太长了,不能在这里发布。什么样的一般情况会导致这个AttributeError,什么是NoneType应该是什么意思,我怎样才能缩小范围?
AttributeError
NoneType
NoneType意味着,您实际上得到了None,而不是您认为正在使用的类或对象的实例。这通常意味着上面的赋值或函数调用失败或返回意外结果。
None
其他人已经解释了NoneType是什么以及结束它的一种常见方式(即,无法从函数返回值)。
另一个常见的原因是不希望在None中对可变对象分配就地操作。例如:
mylist = mylist.sort()
列表的sort()方法对列表进行就地排序,即修改mylist。但该方法的实际返回值是None,而不是已排序的列表。所以你刚刚把None分配给mylist。如果您下一次尝试这样做,比如说,mylist.append(1)Python将给您这个错误。
sort()
mylist
mylist.append(1)
您有一个等于None的变量,并且您正试图访问其名为“something”的属性。
foo = None foo.something = 1
或者
foo = None print foo.something
两者都会产生AttributeError: 'NoneType'
AttributeError: 'NoneType'
NoneType意味着,您实际上得到了
None
,而不是您认为正在使用的类或对象的实例。这通常意味着上面的赋值或函数调用失败或返回意外结果。其他人已经解释了
NoneType
是什么以及结束它的一种常见方式(即,无法从函数返回值)。另一个常见的原因是不希望在
None
中对可变对象分配就地操作。例如:列表的
sort()
方法对列表进行就地排序,即修改mylist
。但该方法的实际返回值是None
,而不是已排序的列表。所以你刚刚把None
分配给mylist
。如果您下一次尝试这样做,比如说,mylist.append(1)
Python将给您这个错误。您有一个等于None的变量,并且您正试图访问其名为“something”的属性。
或者
两者都会产生
AttributeError: 'NoneType'
相关问题 更多 >
编程相关推荐