推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zhangchioulin
V2EX  ›  Python

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

  •  
  •   zhangchioulin · Nov 3, 2017 · 8767 views
    This topic created in 3137 days ago, the information mentioned may be changed or developed.
    事情是这样的:
    最新写一个脚本,随着功能的增加脚本已经 1500 行了。
    这么多行是因为我把每个功能都写在了同一个文件中(这些功能没有相互依赖,但却是完成脚本功能必不可少的一部分)。
    以前写别的语言(Objc)的时候习惯一个文件一个类,写 Python 的时候发现前辈写的脚本喜欢把类全部丢到一个文件中。
    所以现在比较晕,不知道要不要拆出来,不拆的话很多行感官上不太习惯,拆的话好像不太常看到这样写的?
    Python 小白看得代码不够多,Google 也没找到具体的答案,于是来问一下‘到底要不要拆’。
    我的观点是:拆出来,虽然麻烦些,但是这样看起来很整齐。
    32 replies    2019-04-24 18:31:31 +08:00
    zyp0921
        1
    zyp0921  
       Nov 3, 2017
    拆啊 这部废话吗
    takanasi
        2
    takanasi  
       Nov 3, 2017 via Android
    最好分开
    zhangchioulin
        3
    zhangchioulin  
    OP
       Nov 3, 2017
    @takanasi #2
    @zyp0921 #1
    我也是这样想的。。。全写在一起看起来太。。。都对不起我的职称
    cljnnn
        4
    cljnnn  
       Nov 3, 2017 via Android
    这不是一道送分题吗?
    TimePPT
        5
    TimePPT  
    PRO
       Nov 3, 2017 via iPhone
    易于维护拆开写,自用随便……
    zhangchioulin
        6
    zhangchioulin  
    OP
       Nov 3, 2017
    恩!拆开
    superhan
        7
    superhan  
       Nov 3, 2017 via Android
    写在一起的原因我想是 部署方便吧
    BBCCBB
        8
    BBCCBB  
       Nov 3, 2017
    推荐拆
    LokiSharp
        9
    LokiSharp  
       Nov 3, 2017 via iPhone
    不拆,没必要拆
    zhangchioulin
        10
    zhangchioulin  
    OP
       Nov 3, 2017
    @superhan 是的写在一起就是为了部署方便
    zhangchioulin
        11
    zhangchioulin  
    OP
       Nov 3, 2017
    @LokiSharp 不拆会造成以后甩锅被人骂吧。。。
    iiduce
        12
    iiduce  
       Nov 3, 2017
    以舒适为准。发现不适的时候,越早改变越好。
    clino
        13
    clino  
       Nov 3, 2017   ❤️ 1
    其实如果在一个文件里面拆成各种类和函数,也可以做得比较规整的

    如果需要可重用性高特别是给别人用,那做成模块就好就拆成不同的文件
    loveCoding
        14
    loveCoding  
       Nov 3, 2017
    量大了也不太好
    knva
        15
    knva  
       Nov 3, 2017
    才 1500 行,不拆,就不拆
    hsuan
        16
    hsuan  
       Nov 3, 2017 via Android
    如果是工具类脚本,我觉得没有拆的必要
    CSM
        17
    CSM  
       Nov 3, 2017 via Android
    要是有些类 /函数比较独立,拆出来下次重用方便些 :P
    goldenalex
        18
    goldenalex  
       Nov 3, 2017   ❤️ 1
    功能拆分出来,你的能力才能提升,说不准哪一天拆着拆着就成了一个工具包。。。
    iFlicker
        19
    iFlicker  
       Nov 3, 2017
    既然它还是一个脚本的话,建议不拆,
    可以选择重构,让其结构清晰,写上简洁易懂的注释,然后在开头写上 使用和维护说明
    LokiSharp
        20
    LokiSharp  
       Nov 3, 2017 via iPhone
    @zhangchioulin 维护性的话,有空拆包不如把文档和注释写写好 1500 行的代码不算多
    LokiSharp
        21
    LokiSharp  
       Nov 3, 2017 via iPhone   ❤️ 1
    Python 没必要一个文件一个 Class,Python 里文件是 Module,可以包含多个 Class
    billion
        22
    billion  
       Nov 3, 2017
    我认为你这个前辈,可能只是年龄大一些,其他地方都不如你。

    如果不是一次性用的小脚本,显然要拆开。
    lengyihan
        23
    lengyihan  
       Nov 3, 2017 via Android
    模块化,能方便管理复用啊,
    TheCure
        24
    TheCure  
       Nov 3, 2017
    好了, 看到楼上这么多都没有说到点子上
    用 go 写脚本 随你怎么拆, 编译好一个 binary 丢到服务器上 完美
    jamesliu96
        25
    jamesliu96  
       Nov 3, 2017
    模块化的优点在于方便功能开发和管理、维护、复用,如果没这方面的需求写一个文件里,优点是便携。
    Tink
        26
    Tink  
    PRO
       Nov 3, 2017 via iPhone
    小项目的话可以把通用函数都写到一个文件里,特殊的拆开,大项目建议都拆了,不然容易挨骂
    hcnhcn012
        27
    hcnhcn012  
       Nov 3, 2017 via iPhone
    拆啊,拆了之后对代码重复利用和维护性方面都好
    kaneg
        28
    kaneg  
       Nov 3, 2017 via iPhone
    可以按照模块拆,而不是按照 Java 那样一个类一个文件,否则过犹不及。
    860670496
        29
    860670496  
       Nov 3, 2017
    拆,拆完了还能给说明文档和工作日志多水点字数呢
    lolizeppelin
        30
    lolizeppelin  
       Nov 3, 2017 via Android
    运维写的代码吧 233
    spotfg
        31
    spotfg  
       Apr 4, 2019   ❤️ 1
    不考虑重复使用部分就不拆,多个文件重复使用某一个类或者函数就拆那部分就好了
    autogen
        32
    autogen  
       Apr 24, 2019
    全部写在 main 里面也是可以的,我们那会儿玩 ACM 的时候就是这么干的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2753 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 02:30 · PVG 10:30 · LAX 19:30 · JFK 22:30
    ♥ Do have faith in what you're doing.