Dru*_*ass 14 python convention module class file
我在2周前开始使用python进行编程.我正在为每个类创建一个单独的文件(模块),就像我之前在Java或C#等语言中所做的那样.但是现在,看到来自其他人的教程和代码,我意识到许多人使用相同的文件来定义超过1个类和主要功能,但我不知道他们是否这样做,因为只是示例或因为它是一个python约定或类似的东西(在同一个文件中定义和分组许多类).
那么,在Python中,每个类的一个文件或同一文件中的许多类(如果它们可以按任何特定功能分组)?(如同一侧的机动车辆和另一侧的车辆).
很明显,每个人都有自己的风格,但是当我问,我希望一般的答案或只是惯例,无论如何,如果有人想告诉我他对自己的风格和原因的看法,请随意做!;)
每个班级一个文件
不要这样做.在Java中,您不能 - 按设计 - 在文件中有多个类.
在Python中,如果您将相关类分组到一个文件中,那么您就是安全的.看一下Python标准库:许多模块在一个文件中包含多个类.
至于为什么?简而言之:可读性.我个人喜欢不必在文件之间切换以阅读相关或类似的代码.它还使进口更简洁.
试想socketserver.py会蔓延UDPServer,TCPServer,ForkingUDPServer,ForkingTCPServer,ThreadingUDPServer,ThreadingTCPServer,BaseRequestHandler,StreamRequestHandler,DatagramRequestHandler分为九个文件.你会如何导入这些?像这样?
from socketserver.tcp.server import TCPServer
from socketserver.tcp.server.forking import ForkingTCPServer
...
Run Code Online (Sandbox Code Playgroud)
这是明显的开销.当你写它时,它是开销.当你阅读它时,这是开销.这不容易吗?
from socketserver import TCPServer, ForkingTCPServer
Run Code Online (Sandbox Code Playgroud)
也就是说,如果你将每个类放入一个文件中,没有人会阻止你.它可能不是pythonic.
Python 有包、模块和类的概念。如果每个模块放置一个类,那么拥有模块的优势就消失了。如果你有一个很大的类,那么将这个类放在一个单独的文件中可能没问题,但是话又说回来,有一个大的类好吗?不,很难测试和维护。最好有更多具有特定任务的小类,并将它们逻辑地分组到尽可能少的文件中。