写好 Python 代码的几条重要技巧

2023-02-28  本文已影响0人  木叶苍蓝

程序设计的好与坏,早在我们青葱岁月时就接触过了 ,只是那时并不知道这竟如此重要。能够立即改善程序设计,写出好的代码知识有以下几点:


面向对象五个基本原则

立竿见影的单一职责原则
import re
import requests

FILE = "./information.fet"

def extract(file):
    fil = open(file, 'r')
    content = fil.read()
    fil.close()
    find_object = re.search(r"url=\d+", content)
    find = find_object.group(1)
    text = reqeusts.get(find)
    return text

if __name__ == "__main__":
    text = extract(FILE)
    print(text)

需求已经实现,这点毋庸置疑,但是问题来了:

def get_source():
    """获取数据源"""
    return

def extract_(val):
    """匹配关键数据"""
    return

def fetch(val):
    """发出网络请求"""
    return

def trim(val):
    """修剪数据"""
    return

def extract(file):
    """提取目标数据"""
    source = get_source()
    content = extract_(source)
    text = trim(fetch(content))
    return text

if __name__ == "__main__":
    text = extract(FILE)
    print(text)

把原来放在一个函数中实现的多个步骤拆分成为多个更小的函数,每个函数只做一件事情。当数据源发生了变化时,只需要改动 get_source 相关代码即可;如果网络请求返回的数据不符合最终要求,我们可以在 trim 函数中对它进行修剪。这样一来,代码应对变化的能力提高了许多,整个流程变得更清晰易懂。
单一职责原则的核心是解耦和增强内聚力,如果一个函数承担的职责过多,等于把这些职责耦合在一起,这种耦合会导致脆弱的设计。当发生变化时,原本的设计会遭受到意想不到的破坏。单一职责原则实际上把一件事拆分成多个步骤,代码修改造成的影响范围很小。

让代码稳定性飞升的开发封闭原则和依赖倒置原则

开放封闭原则中的开放指的是对扩展开放,封闭指的是对修改封闭。需求总是变化的,业务方这个月让你把数据存储到MySQL数据库中,下个月就有可能让你导出到Excel表格里,这时候你就得改代码了。这个场景和上面的单一职责原则很相似,同样面临代码改动,单一职责原则示例主要表达的是通过解耦降低改动的影响,这里主要表达的是通过对扩展开放,对修改封闭提高程序应对变化的能力和提高程序稳定性。
稳定这个词如何理解呢?
较少的改动或者不改动即视为稳定,稳定意味着调用这个对象的其它代码拿到的结果是可以确定的,整体是稳定的。
按照一般程序员的写法,数据存储的代码大概是这样的:

class MySQLSave:

    def __init__(self):
        pass

    def insert(self):
        pass

    def update(self):
        pass

class Business:
    
    def __init__(self):
        pass

    def save(self):
        saver = MySQLSave()
        save.insert()

功能是能够实现的,如果要是更好存储,那么就意味着需要改代码。按照上面的代码示例,有两个选择:

上一篇下一篇

猜你喜欢

热点阅读