其他分享
首页 > 其他分享> > from...import的严重教训

from...import的严重教训

作者:互联网

原文链接:http://www.cnblogs.com/infernal-affairs/p/3784822.html

    拿到别人写的python客户端的代码,在运行下面代码时出现问题:

1 !/usr/bin/env python
2 from koff import *
3 task_name = get_task()      
4 module = __import__(task_name)
5 func = getattr(module, 'tst_lstil')
6 func()

    在getattr处总是提示错误:TypeError: 'module' object is not callable,后来发现原来是from koff import *这个地方出了问题。在koff包目录下面有一个同名的getattr.py这个文件,所以导致调用时把标准模块的给覆盖了。

    这个问题主要还是处在使用from..import *上面,如果是大型的项目程序,文件名和标准模块的相同是很有可能的,所以也不好避免。对于这种情况,我的建议是谨慎使用from...import *,应该是在你的文件中需要什么就import什么,明确指出模块。

转载于:https://www.cnblogs.com/infernal-affairs/p/3784822.html

标签:...,task,教训,koff,module,getattr,模块,import
来源: https://blog.csdn.net/weixin_30699465/article/details/97895817