有相关的博客还要写它的原因在于下面的博客讲了各自的重点。因此,我将深入刨析原因,以及导致该原因出现的几种问题!如果讲解清楚了,请点个赞哦☀️
参考博文:
- 《AttributeError: ‘NoneType’ object has no attribute……错误分析》
- 《【报错分析】AttributeError: ‘NoneType’ object has no attribute ‘xxx’》
- 《成功解决AttributeError: ‘NoneType’ object has no attribute ‘find_all’》
- 翻译:
错误属性:“nonetype”对象没有'xxx'属性
一、Nonetype
类型
见博客《特殊类型NoneType》
要点:
- NoneType类型只有一个值
None
.
-
Nonetype
类型不支持任何运算也没有内建方法
二、报错的原因
前面讲到 Nonetype
类型只有一个None
,反推也就是出现问题的语句中,含有了 None
这个变量。而根据前面知道,None
是没有任何内建方法的,从而也就没有了任何属性。
- 定位:这是我的代码中的报错,在于第14行
- 测试: 将变量model直接替换为None
可以看到报错的原因,可以说一摸一样! - 验证:我将
model
的类型打印出来 ,
- 结论: 不知什么原因,
model
这个变量变为了None
三、查找变量为None
的原因
变量为None
的原因常常在于…
3.1 读取文件中的数据不成功~~文件路径不正确
目前,我能想到的读取数据不成功的原因只有一个就是文件路径不正确。下面上一些案例以及验证方法!亦可以查看《FileNotFoundError: [Errno 2] No such file or directory》
- 文件路径中的文件夹名称错误
- 文件名路径中的特殊符号的中英文错误
- 文件名的格式后缀错误,比如
.png
–>,jpg
- 检验方法:
(filepath)
相对路径的使用中…
-
./
和../
使用错误
- 检验方法:
()
获得当前python的工作路径
获取绝对路径的方法…
法一:
法二:
提醒:两种方法在文件路径和文件名拼接的时候都要加\
3.2 函数返回None值
在一些自定义函数中,会出现返回None的情况。如下,我自定义了一个函数。
def fun(x):
if isinstance(x,str) :
return x
else:
return None
含义:如果xs是字符串类型,则返回x;如果不是,则返回None值。