我创建了一个Python包......没有任何内容。它只是来自Python packaging tutorial的简单结构。
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ripple="http://schemas.android.com/apk/res-auto"
android:id="@+id/tv_toolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#fff"
ripple:contentInsetStart="0dp">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<ScrollView
android:id="@+id/coordinate_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:marginTop="56dp">
</ScrollView>
您在哪里放置要创建的文件?在根文件夹或其他地方?
答案 0 :(得分:2)
您的文件应位于example_pkg下,示例中包含__init__
。
表示包或子包的每个文件夹都应该有一个__init__.py
文件。
答案 1 :(得分:1)
在Python生态系统中,(至少)有两个相关但不同的东西称为“包”:
__init__.py
文件pip
和相关工具进行安装按照您链接的说明,您可能已经为后者(包含setup.py
的目录等)创建了一个结构,其中包含一个第一类包(内部example_pkg
目录)。 )
example_pkg/
├── example_pkg/
│ └── __init__.py
├── LICENSE
├── README.md
└── setup.py
通常,您应该将库的代码放入第一种类型的包(内部example_pkg
文件夹)中,以便该命名空间正确包含它。
example_pkg/
├── example_pkg/
│ ├── __init__.py <--- put your code here
| ├── a_sub_pkg/
│ │ ├── __init__.py <-- or maybe here
│ │ └── something.py <-- or here
│ └── another_thing.py <-- or here
├── LICENSE
├── README.md
└── setup.py
答案 2 :(得分:0)
我认为您可以从简单地将所有源代码文件放在根目录中开始。将不同的文件(例如图像)放在专用文件夹中可能是个好主意。
当你的项目变大时,最好创建更多的子文件夹(&#34;包&#34;),但这个真的取决于你的情况。从The Zen of Python可以看出,你应该保持你的包结构简单。
>>> import this
Python的禅宗,蒂姆·彼得斯
美丽胜过丑陋。
明确比隐含更好 简单比复杂更好。
复杂比复杂更好 Flat比嵌套好。
稀疏比密集更好 可读性很重要。
特殊情况不足以打破规则 虽然实用性超过了纯度 错误绝不应该默默无闻 除非明确沉默。
面对模棱两可,拒绝猜测的诱惑 应该有一个 - 最好只有一个 - 明显的方式来做到这一点 虽然这种方式起初可能并不明显,除非你是荷兰人 现在总比没有好。
虽然现在永远不会比正确更好 如果实施难以解释,那么这是一个坏主意 如果实施很容易解释,那可能是个好主意 命名空间是一个很棒的主意 - 让我们做更多的事情!
(强调已添加)
所以基本上由你决定,但你应该记住这些。
答案 3 :(得分:0)
您可以以任何对您有意义的方式将您的包分成子包和模块(使用包的模块和目录的新文件)。我将首先查看一些流行的Python包的结构,以便全面了解最佳实践。
查看下面的一些软件包,了解可能的内容和最佳实践。特别注意setup.py
和__init__.py
文件以及整个项目的目录结构。