Python中的文件/模块结构

Python中的文件/模块结构,python,module,packages,Python,Module,Packages,因此,我刚刚开始学习Python,目前正在努力学习。代码示例很好,但绝大多数都是四行代码片段,我想了解更多的大局 据我所知——如果我错了,请纠正我——每个“.py”文件都变成了一个“模块”,目录中的一组模块变成了一个“包”(至少,如果我在该目录中创建一个\uu init\uuuuu.py)。如果我没有\uuuu init\uuuu.py文件怎么办 那么每个“模块”文件是什么样子的呢?我通常只在文件中定义一个类吗?除了类定义和一些import命令之外,该文件中还有其他内容吗 如果我没有电话怎么办

因此,我刚刚开始学习Python,目前正在努力学习。代码示例很好,但绝大多数都是四行代码片段,我想了解更多的大局

据我所知——如果我错了,请纠正我——每个“.py”文件都变成了一个“模块”,目录中的一组模块变成了一个“包”(至少,如果我在该目录中创建一个
\uu init\uuuuu.py
)。如果我没有
\uuuu init\uuuu.py
文件怎么办

那么每个“模块”文件是什么样子的呢?我通常只在文件中定义一个类吗?除了类定义和一些
import
命令之外,该文件中还有其他内容吗

如果我没有电话怎么办
\uuuu init\uuuuu.py
文件

它只是一个文件夹

我通常只定义一个类吗 在档案里

视情况而定。不一定

那个档案里还有别的东西吗 除了类定义和 几个导入命令


你可以放任何你想要的东西。至少对python有效的任何东西。

Falmari回答得很好,但只是补充:


\uuuu init\uuuuu.py
可以是空文件(通常是),但它也可以执行包的初始化代码或设置变量

这并不是一个真正的答案,但始终值得看看标准库,看看它们是如何在
sqlite3
之类的包中使用
\uuu init\uuuuuuuuy.py
而不是在
SimpleHTTPServer

之类的模块中使用
为什么?你认为只有一个类的模块是不可想象的吗?我有很多模块根本不定义类。我还有一些定义了一些相关类(但仍然不超过100150行)。Python不是Java-类不是必须的,所以当有更好的选择时,你不会使用它们(当然,其他所有的选择都是如此)。@Falmari:不,这只是因为从OP的回答来看,他似乎在Python上投射Java设计,所以我想你可以告诉我,在python中没有必要说这取决于我,就像你告诉他你可以像Java一样用python编程一样,只是句子语法没什么大不了的,没关系:)所以,我可以制作一个模块
bob
,这只是一系列函数。要在其他地方使用
bob
,我
导入bob
,然后访问那些函数,如
bob.func_one()
bob.func_two()
等。?或者我不需要函数名前面的
bob.
?如果您执行
import bob
,则需要按照您提到的方式调用每个函数:
bob.func_one()
,等等。如果您从bob import func_one执行:
,这将仅从
bob
导入
func\u one
,您可以直接调用它:
func\u one()
,而不使用
bob
前缀。或者您可以将整个代码放入
\uu init\uu
中。或者把你想公开的代码放进去。我也从pkg.subpkg中看到了(作为一个库用户,我喜欢它)
导入一些常用的东西
,所以
import pkg
已经为你提供了你需要的大部分东西。