Python 脚本应该把类全部写在一个文件中还是分模块写?

事情是这样的:
最新写一个脚本,随着功能的增加脚本已经 1500 行了。
这么多行是因为我把每个功能都写在了同一个文件中(这些功能没有相互依赖,但却是完成脚本功能必不可少的一部分)。
以前写别的语言(Objc)的时候习惯一个文件一个类,写 Python 的时候发现前辈写的脚本喜欢把类全部丢到一个文件中。
所以现在比较晕,不知道要不要拆出来,不拆的话很多行感官上不太习惯,拆的话好像不太常看到这样写的?
Python 小白看得代码不够多,Google 也没找到具体的答案,于是来问一下‘到底要不要拆’。
我的观点是:拆出来,虽然麻烦些,但是这样看起来很整齐。
Python 脚本应该把类全部写在一个文件中还是分模块写?


31 回复

拆啊 这部废话吗


这得看项目规模。小工具或者脚本,一个文件搞定就行,代码少好维护。但项目稍微大点,比如有几个功能模块,分开放会更清晰。

分模块写的好处是结构清楚,每个文件职责单一,改代码的时候不用在一个大文件里翻来覆去地找。比如把数据处理、业务逻辑、工具函数分到不同的 *.py 文件里,用 import 调用,这样哪个部分出问题也好定位。

举个例子,一个简单的Web项目可以这么组织:

# models.py - 放数据类
class User:
    def __init__(self, name):
        self.name = name

# utils.py - 放辅助函数
def format_name(user):
    return user.name.upper()

# main.py - 主程序
from models import User
from utils import format_name

user = User("alice")
print(format_name(user))

简单来说,小项目放一起,大项目拆分开。

最好分开

#2
#1
我也是这样想的。。。全写在一起看起来太。。。都对不起我的职称

易于维护拆开写,自用随便……

恩!拆开

写在一起的原因我想是 部署方便吧

推荐拆

不拆,没必要拆

是的写在一起就是为了部署方便

不拆会造成以后甩锅被人骂吧。。。

以舒适为准。发现不适的时候,越早改变越好。

其实如果在一个文件里面拆成各种类和函数,也可以做得比较规整的

如果需要可重用性高特别是给别人用,那做成模块就好就拆成不同的文件

量大了也不太好

如果是工具类脚本,我觉得没有拆的必要

要是有些类 /函数比较独立,拆出来下次重用方便些 :P

功能拆分出来,你的能力才能提升,说不准哪一天拆着拆着就成了一个工具包。。。

既然它还是一个脚本的话,建议不拆,
可以选择重构,让其结构清晰,写上简洁易懂的注释,然后在开头写上 使用和维护说明

维护性的话,有空拆包不如把文档和注释写写好 1500 行的代码不算多

Python 没必要一个文件一个 Class,Python 里文件是 Module,可以包含多个 Class

我认为你这个前辈,可能只是年龄大一些,其他地方都不如你。

如果不是一次性用的小脚本,显然要拆开。

模块化,能方便管理复用啊,

好了, 看到楼上这么多都没有说到点子上
用 go 写脚本 随你怎么拆, 编译好一个 binary 丢到服务器上 完美

模块化的优点在于方便功能开发和管理、维护、复用,如果没这方面的需求写一个文件里,优点是便携。

小项目的话可以把通用函数都写到一个文件里,特殊的拆开,大项目建议都拆了,不然容易挨骂

拆啊,拆了之后对代码重复利用和维护性方面都好

可以按照模块拆,而不是按照 Java 那样一个类一个文件,否则过犹不及。

拆,拆完了还能给说明文档和工作日志多水点字数呢

运维写的代码吧 233

不考虑重复使用部分就不拆,多个文件重复使用某一个类或者函数就拆那部分就好了

全部写在 main 里面也是可以的,我们那会儿玩 ACM 的时候就是这么干的

回到顶部