Python中无法对字符串列表执行type(x):NoneType对象不可调用
解决调用
type()时出现'NoneType' object is not callable的报错问题 这问题我之前踩过一模一样的坑!你遇到的情况百分百是不小心覆盖了Python内置的type()函数,把它变成了None对象,所以调用type(d)的时候才会抛出这个错误。
问题根源
Python里type是自带的内置函数,专门用来返回对象的类型。如果你的代码里之前出现过类似下面的语句:
type = None # 或者 type = 某个自定义变量/值
那原本的type()函数就被覆盖成了None,这时候你再调用type(d),本质上是在尝试调用一个None对象,自然会触发'NoneType' object is not callable的报错。
而你能正常print(d)和遍历列表,说明列表d本身完全没问题,问题出在type这个名字被“污染”了。
解决办法
- 排查并修正代码:从头到尾检查你的代码,找到给
type赋值的语句,要么把变量名改成别的(比如my_type),要么直接删掉那行不必要的赋值。 - 交互式环境快速恢复:如果是在Python shell、IPython这类交互式环境里,可以直接执行:
这会删除你自定义的del typetype变量,让Python重新使用内置的type()函数。
验证操作
执行完上面的步骤后,再运行:
d=["'Jan 2018'","'Feb 2018'","'Mar 2018'","'Jun 2018'"] type(d)
应该就能正常返回<class 'list'>了。
内容的提问来源于stack exchange,提问作者user3007270
相关产品推荐
相关产品推荐

