我 2 周前开始使用 Python 编程。我正在为每个类制作一个单独的文件(模块),就像我以前用 Java 或 C# 等语言所做的那样。
但是现在,看到其他人的教程和代码,我意识到很多人使用相同的文件来定义不止 1 个类和主要功能,但我不知道他们是否那样做,因为只是示例或因为这是一个 python 约定或类似的东西(在同一个文件中定义和分组许多类)。
那么,在 Python 中,每个类对应一个文件,还是同一个文件中的多个类(如果它们可以按任何特定功能分组)? (比如一侧是机动车,另一侧是车辆)。
很明显每个人都有自己的风格,但是当我问的时候,我希望得到一般性的回答或者只是约定俗成,无论如何,如果有人想告诉我他对自己的风格的看法以及为什么,尽管去做吧! ;)
one file for each class
不要这样做。在 Java 中,一个文件中通常不会有多个类(当然可以 nest )。
在 Python 中,如果您将相关 类分组到一个文件中,那么您就安全了。看看 Python standard library : 许多模块在单个文件中包含多个类。
至于为什么?简而言之:可读性。我个人喜欢不必在文件之间切换来阅读相关或相似的代码。它还使导入更加简洁。
想象 socketserver.py会传播 UDPServer
, TCPServer
, ForkingUDPServer
, ForkingTCPServer
, ThreadingUDPServer
, ThreadingTCPServer
、BaseRequestHandler
、StreamRequestHandler
、DatagramRequestHandler
分为九个文件。你将如何导入这些?像这样?
from socketserver.tcp.server import TCPServer
from socketserver.tcp.server.forking import ForkingTCPServer
...
那是普通的开销。当您编写它时,它是开销。当你阅读它时,它是开销。这不是更容易吗?
from socketserver import TCPServer, ForkingTCPServer
也就是说,如果您将每个类都放在一个文件中,没有人会阻止您。它可能不是 pythonic .