【发布时间】:2017-06-12 15:37:28
【问题描述】:
我有一个 Python 脚本。 我在这个脚本中有几个函数,我决定将它们移到主脚本旁边的“包”文件夹中。 在这个文件夹中,我创建了一个 *.py 文件,其中放置了我的所有函数。 我在“package”文件夹中的这个文件附近放置了一个空的 init.py。
当我的主脚本代码开始时:
from package_folder.my_functions import *
从该文件调用每个函数时,该脚本运行良好。
但是当尝试直接导入时:
import package_folder.my_functions
它似乎不像上述技术那样有效。
原因似乎是在文件 wellmy_functions.py 中,我有一个需要另一个函数的函数,该函数之前已在该文件中声明。
我在那个需要另一个函数的函数上遇到了这个模糊的错误:
TypeError: 'NoneType' 对象不可调用
是否允许,如果不允许,如何处理?
【问题讨论】:
-
你可以试试
import package_folder.my_functions.func1,其中func1是my_functions.py文件中的函数名 -
我已经读到使用通配符不是一个好主意,这就是我问的原因。
-
是的,通配符导入并不是一个好主意,那么你应该像
from package_folder.my_functions import func1, func2那样做,其中func1和func2是my_functions.py文件中的函数名称跨度> -
加载大量这样的函数可能会很痛苦,不是吗?
-
这很痛苦,但在避免由于通配符导入而可能发生的命名空间污染方面很好。
标签: python function module package