V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
9
V2EX  ›  问与答

小型的 Python 代码怎么写,怎么组织比较好,有没有这方面的资料或者建议呢?

  •  1
     
  •   9 · 2023-08-03 09:00:07 +08:00 · 1515 次点击
    这是一个创建于 503 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的场景是在 SCF 中编写 Python 代码,不需要完整的 Web 框架,只需要很少的代码,加上一定的组织

    我希望能够做到:

    1.代码只需要写核心逻辑,其他字段验证、异常抛出错误、打印日志等等不需要太在意
    2. 核心的代码量要少,其他人一眼能看到核心逻辑
    3. 写代码共享方便,别人不需要重复封装,直接使用,而且用起来很方便,能够一行就可以调用的,不用两三行

    在实践的时候,我总是遇到这样两个问题:

    1.总感觉自己写的很冗长,不符合 Pythonic 思维,比如 json 获取值,每次都要判断 key 是否存在,这些判断其实对核心逻辑没有帮助,会有一大堆 if 代码,大家看着都累,最后才发现核心逻辑就一行,如:
    2. 代码之间如何组织,哪些应该写成类,哪些应该写成函数,哪些应该放入公共函数,还没有自己的方法论

    希望各位大佬能给点建议
    9 条回复    2023-08-03 19:31:56 +08:00
    Davic1
        1
    Davic1  
       2023-08-03 09:10:47 +08:00
    SCF 是什么
    Ocean810975
        2
    Ocean810975  
       2023-08-03 09:17:19 +08:00
    看看《流畅的 Python 》?微信读书上就有
    也有第二版了,勘误了一些内容,不过纸质不太好,不建议购买,等图灵上电子版再买好些。
    > 本书致力于帮助 Python 开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护,并且具有地道 Python 风格的代码。本书尤其深入探讨了 Python 语言的高级用法涵盖数据结构、Pytho 风格的对象、并行与并发,以及元编程等不同的方面。
    lekai63
        3
    lekai63  
       2023-08-03 09:20:37 +08:00
    @Davic1 云函数?
    9
        4
    9  
    OP
       2023-08-03 09:23:19 +08:00
    @Davic1 云函数哈,所以不太需要常见的 python web 框架这么大而全,很多用不上
    9
        5
    9  
    OP
       2023-08-03 09:23:53 +08:00
    @Ocean810975 有在看,挺不错的,但是还没看完,代码组织也有讲吗?
    nyakoy
        6
    nyakoy  
       2023-08-03 09:44:36 +08:00
    我自己的理解是公用的代码我会做成公共函数,如果一个分类里面公用函数比较多,比如对一个 list 取值,插入,迭代,查询这么多方法我会封成一个类。
    9
        7
    9  
    OP
       2023-08-03 10:46:53 +08:00
    @nyakoy
    kongwenyan
        8
    kongwenyan  
       2023-08-03 17:10:00 +08:00
    可以尝试多使用一些 decorator. 关于 json 验证你可以看看一个例子 https://realpython.com/primer-on-python-decorators/#validating-json
    9
        9
    9  
    OP
       2023-08-03 19:31:56 +08:00
    @kongwenyan 感谢,学习些
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5385 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:28 · PVG 15:28 · LAX 23:28 · JFK 02:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.