【问题标题】:How to setup a program in python?如何在python中设置程序?
【发布时间】:2011-12-26 03:29:54
【问题描述】:

我编写了一个 python 程序,我用控制台的参数调用它。随着功能的增加,现在嵌套在一个文件中的代码量也在增加。

我知道我可以创建一些 python 模块和包来外包我编写的函数。但这真的是python的做事方式吗?

文件夹结构是什么样的?类似的东西

prog
  __init__.py
  module1.py
  module2.py
prog.py

prog(一个目录或python包)和prog.py在哪里共享同一个目录?

【问题讨论】:

    标签: python installation package directory main


    【解决方案1】:

    这是一个很好的解决方案,认为您的模块应该存储在一个包中不像您的主模块那样调用。这样容易导致模块名和包名冲突。

    这可以是resourceslib 或任何其他名称,但请不要使用prog,因为您已经有一个名为prog.py 的模块;不然怎么知道import prog的结果?

    注意:根据我在我的 Python 2.6 安装中看到的内容,使用您建议的结构和名称,您不会收到错误消息,但无法访问 prog.py 内容。

    【讨论】:

    • 我可以确认当我调用我的包裹prog 时出现了问题。但是由于我在根目录中还有其他程序,例如prog,我应该给prog-package 取什么名字?只是libresources 不会使包与其他程序可能使用的其他包区分开来......?
    • prog_liblib_prog 怎么样?然后,您可以拥有其他文件夹,例如 prog_testtest_prog、“prog_resources”等,具体取决于您希望它们出现在主文件夹中的方式。
    【解决方案2】:

    这是一个相当正常的开发周期 - 任何具有共同目的或与共同数据集相关的功能/方法集都可以拆分为单独的模块。函数必须与代码的其余部分松散耦合(通过函数调用参数和返回值进行通信,而不是共享变量),并且将它们分成单独的模块的行为可以很容易地识别应该转换为函数的共享变量接口。模块化编程绝对是 Pythonic!

    您不需要为您的模块设置单独的文件夹,只需为 .py 文件提供与其功能相关的有意义的名称。我不会调用文件 prog_lib.py,如果它可以绘图,我会调用它 prog_graphics.py,如果它对旋转对象进行计算,我会调用它 spincalcs.py :-) 等等。

    【讨论】:

    • 由于我的根文件夹中有多个程序,我宁愿创建包而不是与我的prog.py 位于同一文件夹中的模块。就像我知道的那样,我的根目录中的每个文件都是一个程序。
    猜你喜欢
    • 2011-01-20
    • 2012-06-08
    • 2015-08-11
    • 1970-01-01
    • 2021-05-30
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多