Python中的文件/模块结构

3 投票
3 回答
2528 浏览
提问于 2025-04-16 09:55

我刚开始学习Python,现在正在看http://diveintopython3.ep.io/这个网站。那里的代码示例很不错,但大多数都是四行的小片段,我想看看更全面的内容。

我理解的是——如果我理解错了请纠正我——每个“.py”文件就变成了一个“模块”,而一个文件夹里的多个模块就组成了一个“包”(至少,如果我在那个文件夹里创建一个__init__.py文件的话)。如果我没有__init__.py文件,那它算什么呢?

那么每个“模块”文件长什么样呢?我一般在文件里只定义一个类吗?除了类的定义和可能的一些import命令,文件里还可以放其他东西吗?

3 个回答

0

Falmarri的回答已经很不错了,不过我再补充一下:

__init__.py 文件可以是一个空文件(通常就是空的),但它也可以用来执行一些初始化的代码,或者设置一个叫做 __all__ 的变量。

1

这其实不是一个直接的答案,但看看标准库是怎么用 __init__.py 的,还是很有意思的。比如在像 sqlite3 这样的包里,和在像 SimpleHTTPServer 这样的模块里,它们的用法是不同的。

5

如果我没有一个 __init__.py 文件,那这是什么呢?

那就只是一个文件夹。

我一般在文件里只定义一个类吗?

这要看情况,不一定。

除了类定义和可能的一些导入命令,文件里还能放别的东西吗?

你可以放任何你想放的东西,只要是有效的 Python 代码就行。

撰写回答