【问题】

如下代码:def callBlogFunc(funcToCall, *paraList):

funcName = funcToCall.func_name;

if(blogIsNetease()):

trueFunc = getattr(BlogNetease, funcName);

logging.info("Now will cll netease function: %s", funcName);

elif (blogIsBaidu()) :

trueFunc = getattr(BlogBaidu, funcName);

logging.info("Now will cll baidu function: %s", funcName);

else:

logging.error("Invalid blog provider");

sys.exit(2);

return;

print "trueFunc=",trueFunc;

paraLen = len(paraList);

print "paraLen=",paraLen;

if(paraLen == 1):

return trueFunc(paraList[0]);

elif (paraLen == 2):

return trueFunc(paraList[0], paraList[1]);

elif (paraLen == 3):

return trueFunc(paraList[0], paraList[1], paraList[2]);

elif (paraLen == 4):

return trueFunc(paraList[0], paraList[1], paraList[2], paraList[3]);

elif (paraLen == 5):

return trueFunc(paraList[0], paraList[1], paraList[2], paraList[3], paraList[4]);

elif (paraLen == 6):

return trueFunc(paraList[0], paraList[1], paraList[2], paraList[3], paraList[4], paraList[5]);

elif (paraLen == 7):

return trueFunc(paraList[0], paraList[1], paraList[2], paraList[3], paraList[4], paraList[5], paraList[6]);

elif (paraLen == 8):

return trueFunc(paraList[0], paraList[1], paraList[2], paraList[3], paraList[4], paraList[5], paraList[6], paraList[7]);

else :

logging.error("Not support function parameters exceed 8 !");

sys.exit(2);

return;

def extractBlogUser(inputUrl):

return callBlogFunc(extractBlogUser, inputUrl);

def doPrepareWork(inputUrl):

# 2. extract blog user and blog entry url from input url

(extractOK, extractedBlogUser, generatedBlogEntryUrl) = extractBlogUser(inputUrl);

另外一个文件BlogBaidu.py中包含对应的所调用的函数:

def extractBlogUser(inputUrl):

(extractOk, extractedBlogUser, generatedBlogEntryUrl) = (False, "", "");

# some code ...

return

运行出错:Traceback (most recent call last):

File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress_v2012-03-22-office\BlogsToWordpress_v2012-03-22-office.py", line 1389, in

main();

File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress_v2012-03-22-office\BlogsToWordpress_v2012-03-22-office.py", line 1288, in main

doPrepareWork(srcURL);

File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress_v2012-03-22-office\BlogsToWordpress_v2012-03-22-office.py", line 1135, in doPrepareWork

(extractOK, extractedBlogUser, generatedBlogEntryUrl) = extractBlogUser(inputUrl);

TypeError: ‘NoneType’ object is not iterable

【解决过程】

1.以为是上面的callBlogFunc的最后的else分支中,只是return而导致的错误呢,所以把:

else :

logging.error("Not support function parameters exceed 8 !");

sys.exit(2);

return;

改为:

else :

logging.error("Not support function parameters exceed 8 !");

sys.exit(2);

return trueFunc(paraList[0]);

结果问题依旧。

2.无意间尝试出来,如果doPrepareWork中,直接调用extractBlogUser是可以的:

extractBlogUser(inputUrl);

但是还是未找到错误原因。

3. 最后才发现,原来是文件BlogBaidu.py中所包含的extractBlogUser,最后是return,没有返回对应的所需要的值,

所以,把BlogBaidu.py中所包含的extractBlogUser的return改为:

return (extractOk, extractedBlogUser, generatedBlogEntryUrl);

就解决了问题了。

【总结】

此处出现:

TypeError: ‘NoneType’ object is not iterable

的原因在于,最终所被调用的函数所返回的值,和返回值赋值给的变量,不匹配。

此处即为,最终所调用的函数是extractBlogUser,其return为空,所以把返回的空的值,赋值给

(extractOK, extractedBlogUser, generatedBlogEntryUrl)

才会出现类型错误TypeError,才会提示NoneType,即extractBlogUser所return回来的None,是not iterable的。

如果再次出现类似错误,那么就去找找你所调用的函数的返回的值的类型,是否和返回值所赋值的变量的类型,两者是否匹配。

python nonetype_【已解决】Python程序错误:TypeError: ‘NoneType’ object is not iterable相关推荐

  1. python常见错误 TypeError: 'NoneType' object is not iterable

    TypeError: 'NoneType' object is not iterable 1. 将None赋给多个值时,会出现提示:TypeError: 'NoneType' object is no ...

  2. Python错误 TypeError: ‘NoneType‘ object is not subscriptable解决方案汇总

    目录 前言 一.引发错误来源 二.解决方案 2-1.解决方案一(检查变量) 2-2.解决方案二(使用 [] 而不是 None) 2-3.解决方案三(设置默认值) 2-4.解决方案四(使用异常处理) 2 ...

  3. Python+selenium自动化测试:报错:TypeError: 'WebElement' object is not iterable

    代码: # -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.by import By ...

  4. append导致TypeError: 'NoneType' object is not iterable

    a=[1,2,3] a.append(4) a Out[4]: [1, 2, 3, 4] a=a.append(5) print(a) None a =[1,2,3] print(a.append(4 ...

  5. python cannot concatenate_解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects

    解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects TypeError: cannot concatenate 'str' ...

  6. python nonetype_python装饰器 ——@符号与“TypeError: ‘NoneType’ object is not callable” | 学步园...

    今天来讨论一下装饰器.装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数 ...

  7. Python关于None的报错:'NoneType' object is not iterable和cannot unpack non-iterable NoneType object

    文章目录 一.TypeError:'NoneType' object is not iterable(类型错误:'NoneType'对象不是可迭代的) 二.TypeError: cannot unpa ...

  8. TypeError: 'NoneType' object is not callable : 解决

    遇到的问题:今天在学习Python闭合函数的时候遇到了如上题目的问题,很明显是类型错误 TypeError: 'NoneType' object is not callable 思考:检查代码那里的类 ...

  9. Python----方法返回None值报错 TypeError NoneType object is not callable

    转载请声明,本文来自:https://blog.csdn.net/shijianduan1/article/details/106415395 相信很多小伙伴, 在遇到报错的时候,直接搜索报错内容, ...

最新文章

  1. jq 控制td只显示一行_桥式八角翼闸DAIC-TD-YZ
  2. mysql编译方式安装_mysql编译方式安装
  3. ScrollView内嵌ListView或GridView的滑动处理
  4. AMD Mantle再添新作,引发下代GPU架构猜想
  5. python下载文件并改名_Python遍历文件夹并批量改名
  6. 「代码随想录」343. 整数拆分【动态规划】详解!
  7. Comparable与Comparator对象比较
  8. 104道 CSS 面试题,助你查漏补缺
  9. jquery api的整体解读
  10. [渝粤教育] 南京审计大学 审计学基础 参考 资料
  11. 移动端实现点击按钮复制文本功能
  12. python如何筛选excel重复_老板让我从上千个Excel中筛选数据,利用Python分分钟解决!...
  13. 如何升级MacOS到指定版本
  14. 【AD封装】插件电阻贴片电阻排阻分装(带3D)
  15. java微信支付 需要证书吗_java引用微信支付的p12证书文件
  16. Save More Mice (贪心 二分)
  17. Atcoder abc A~E
  18. 基于ADC电压采集的锂电池电量显示方法
  19. windows CE初次接触(一次升级长安致尚XT高德导航的经历)
  20. html图片加文字批量处理,图片批量加水印工具,图片批量添加文字|图片同时添加文字或图片水印...

热门文章

  1. IS服务器下做301永久重定向设置方法
  2. MikuMikuShaders
  3. [BZOJ3261] 最大异或和 (异或前缀和,可持久化Trie)
  4. SQLite3动态创建表
  5. 初识linux以及bash的部分使用及技巧
  6. 每日一句English
  7. wifi漫游测试过程
  8. JDK,JRE,JVM区别与联系
  9. 电梯维修属于什么服务器,电梯维修属于建筑服务中的修缮服务吗?
  10. Python看似简单的地方——关于全局变量与局部变量