【问题标题】:Python Submodules an easier referencePython 子模块更容易参考
【发布时间】:2011-04-07 20:18:29
【问题描述】:

我不知道这在 python 中是否可行,但这里是...

我有一个类似这样的文件夹结构

\webapplication
    \forms
        __init__.py
        model01.py  # (defines Model01Form)
        model02.py  # (defines Model02Form)
    \views
        __init__.py
        admin.py    # (this file imports the forms)

我想知道是否有任何方法可以像这样导入但仍将它们保存在单独的文件中。

from webapplication.forms import Model01Form, Model02Form

不必这样做

from webapplication.forms.model01.Model01Form
from webapplication.forms.model02.Model02Form

提前感谢:)

【问题讨论】:

    标签: python packages


    【解决方案1】:

    仅当您首先将表单导入__init__.py

    from model01 import Model01Form
    from model02 import Model02Form
    

    但是,您应该问自己是否必须拥有两个单独的模型文件。 Python 不是 Java:你可以在一个模块中拥有任意数量的类。

    【讨论】:

    • 好吧......也许我应该只听听这个上的 pyflakes,然后在一个文件 forms.py 中定义它们 :) init.py:1: 'OpeningHourForm ' 已导入但未使用 init.py:2: 'RestaurantForm' 已导入但未使用
    • +1:为什么“仍然将它们保存在单独的文件中”?没什么意义。
    • 多个文件是开发代码的绝佳方式。如果每个文件都有一个类,那么很容易找出定义的地方。虽然可以将多个类放在一个文件中,但这样做并没有真正的优势(也不是劣势)。做最适合您和您的团队的事情。
    • @Bryan Oakley:做最好的事情也意味着用 Python 做的事情很容易。当代码通过每个文件一个类的方法变得过于复杂时,那么每个文件多个类可能会更好。 “很容易弄清楚”在很大程度上是不真实的,因为大多数 Python 人在每个文件中放置了多个类,而且似乎没有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 2012-12-19
    • 2011-01-21
    • 2014-03-16
    • 2012-10-05
    • 1970-01-01
    相关资源
    最近更新 更多