|
|
1
32
以“包装的逻辑单元”来考虑——它可能是一个单独的类,但更经常是一组密切合作的类。类(或模块级函数)——当模块级函数也可以作为选择时,始终使用静态方法不做“Python中的Java”!-)可以根据此条件分组。基本上,如果A的大多数用户也需要B,反之亦然,那么A和B可能在同一个模块中;但是如果许多用户只需要其中一个而不需要另一个,那么他们可能在不同的模块中(可能在同一个包中,即目录
标准的python库虽然远不是完美的,但往往反映(大部分)相当好的实践——所以您可以通过示例从中学习。例如
|
|
|
2
8
如果您想坚持每个文件系统一个类(这是合乎逻辑的,请不要误会我),您可以这样做以避免引用
但是,正如cobbal所提到的,每个文件有多个类在Python中非常常见。不管怎样,只要你选择一个合理的系统并始终如一地使用它,我认为没有任何一个Python用户会生你的气。 |
|
|
3
8
如果来自C++视图,可以查看类似于.SO或.DLL的Python模块。是的,它们看起来像源文件,因为python是脚本化的,但实际上它们是具有特定功能的可加载库。 另一个可能有用的比喻是,您可能将Python模块视为名称空间。 |
|
|
4
4
在一个中等规模的项目中,我发现自己有几组密切相关的类。这些集合中的一些现在被分组成文件;例如,低级网络类都在一个单独的类中
也许,从每个文件一个类的历史记录开始沿着这条路径前进的最好方法是将通常放在同一目录中的类,而不是将它们保存在同一个文件中。如果该文件看起来太大,请将其拆分。 |
|
|
5
3
作为一个模糊的准则:每个文件超过一个类是Python的规范 |