我重构代码组织只是有点给你的顶层目录更具描述性的名称。今天,我选择happy_bananas
。所以我们可以说你组织你这样的文件:
happy_bananas
start.py
DisplayTools.py
CollectionTools.py
那么所有你需要做的就是添加一个空__init__.py
文件,你可以使用它就像任何其他的包装,如:
happy_bananas
__init__.py
start.py
DisplayTools.py
CollectionTools.py
而且现在,如果你可以这样做:
from happy_bananas import DisplayTools
就像你面前。
现在,要将它加入到您的系统中,您需要打包并使用安装脚本。您可以使用distutils
或setuptools
来做到这一点,但也许最简单的现有描述是在Zed Shaw的Learn Python The Hard Way Exercise 46中。你真的可以复制/这些文件粘贴与那里描述并以目录结构像这样结束:
happy_bananas
setup.py
tests
test_happy_bananas.py
happy_bananas
__init__.py
start.py
DisplayTools.py
.
.
然后,当你有你的安装脚本写的,你可以进入你的文件夹,运行python setup.py install
(或python setup.py develop
)并且能够在任何文件中使用import happy_bananas
。
另一方面,Python中的命名约定是为文件名和函数名使用snakecase。因此,而不是DisplayTools.py
,最好将其重命名为display_tools.py
。 CamelCase通常只用于类名。
很好的答案,但可能是OP的矫枉过正。 –
我并不真正使用安装程序。根据我在问题中提出的文件树,从工具导入DisplayTools.py不工作(即使在Tools目录中有一个空的'__init__'文件)... [感谢您对namin约定的评论] – user1187727
包装是我期望的更复杂的演变。我会尽力在稍后处理。我希望用户根据Tools/DisplayTools.py中的函数填写Start.py,例如! – user1187727