如何编写既高效又优雅的代码实例?

2026-05-06 04:551阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计968个文字,预计阅读时间需要4分钟。

如何编写既高效又优雅的代码实例?

背景介绍以下这些代码片段是我工作多年的总结,主要包括如何写出优雅代码的一些方法,欢迎各位小伙伴前来鉴赏或讨论。

优雅代码写作方法

1.命名规范:使用有意义的变量和函数名,遵循PEP 8编码规范。

2.模块化:将代码划分为功能模块,提高可读性和可维护性。

3.重构:不断优化代码,去除冗余和重复,提高代码质量。

4.测试驱动:先编写测试用例,再编写实现代码,确保代码的稳定性和可靠性。

5.代码注释:在关键代码段添加注释,便于他人理解。

参考书籍

《代码整洁之道》、《写出好的Python代码的91个建议》、《正文字幕开始》

背景介绍

以下这些代码片段是我工作多年,总结的一些如何写出漂亮代码的方法,欢迎小伙伴前来借鉴或者讨论。
参考书籍《代码整洁之道》,《写好Python代码的91个建议》

正文开始 代码段1

def get_environment(self, environment_id: int = None, environment_name: str = ""): if environment_id: environment = self.session.query( models.Environment).filter_by( id=environment_id).first() else: environment = self.session.query( models.Environment).filter_by( name=environment_name).first() return environment

这段代码的意思是,我们从调用方获取参数,如果是拿到了environment_id,我们就执行if代码块,如果是我们拿到了environment_name, 我们就执行else代码块。
不知道大家看到这段代码,有没有发现什么问题?

如何编写既高效又优雅的代码实例?


⏱️一分钟思考时间。。。


在这段代码中,我们在进行session.query时,多处使用了重复的代码,这样虽然没有任何程序上的问题,但是看起来非常不优雅。
于是我修改之后,如下

def get_environment(self, environment_id: int = None, environment_name: str = ""): condition = {'id': environment_id} if environment_id else {'name': environment_name} return self.session.query(models.Environment).filter_by(**condition).first() 思考

通过分析发现,我们可以将要查询的变量组装成一个字典形式,然后在session.query中使用双星号解包使用。
这样很巧妙的去掉了冗余不好看的代码结构。

代码段2

if testcase_id and account_type: stmt = ( select( models.Accounts).where( exists_testcase_id, exists_account_type, exists_account_status)) elif testcase_id: stmt = ( select( models.Accounts).where( exists_testcase_id, exists_account_status)) elif account_type: stmt = ( select( models.Accounts).where( exists_account_type, exists_account_status)) elif status: stmt = ( select( models.Accounts).where(exists_account_status)) else: stmt = (select(models.Accounts)) return self.session.execute(stmt).all()

在这段代码中,我们最终是通过参数的组合来查询Accounts数据,在这个函数种我们接受了多个参数,testcase_id,account_type,status。这几个参数又可以产生多种组合。
如果是按照上面的编码方式,那么我们写出来的代码很长而且冗余。
那么如何重构它呢???


⏱️一分钟思考时间。。。


conditions = [] if testcase_id: conditions.append(models.Accounts.testcase_object.has( models.Testcase.testcase_id == testcase_id)) if account_type: conditions.append(models.Accounts.account_type_object.has( models.AccountType.name == account_type)) if status: conditions.append(models.Accounts.status == status) stmt = (select(models.Accounts).where(*conditions)) return self.session.execute(stmt).all() 思考

我们通过分析发现,由于多个参数存在多种组合,那么我们首先需要一个列表来存放这些查询条件,然后通过if-else来添加要查询的条件放入列表中。
最后在倒第二行的时候,统一解包。
这样重构的好处就是,我们不需要再去关注他们有多少种组合的情况,我们只需把要查询的条件,统一存放起来。然后再进行查询操作。

本文共计968个文字,预计阅读时间需要4分钟。

如何编写既高效又优雅的代码实例?

背景介绍以下这些代码片段是我工作多年的总结,主要包括如何写出优雅代码的一些方法,欢迎各位小伙伴前来鉴赏或讨论。

优雅代码写作方法

1.命名规范:使用有意义的变量和函数名,遵循PEP 8编码规范。

2.模块化:将代码划分为功能模块,提高可读性和可维护性。

3.重构:不断优化代码,去除冗余和重复,提高代码质量。

4.测试驱动:先编写测试用例,再编写实现代码,确保代码的稳定性和可靠性。

5.代码注释:在关键代码段添加注释,便于他人理解。

参考书籍

《代码整洁之道》、《写出好的Python代码的91个建议》、《正文字幕开始》

背景介绍

以下这些代码片段是我工作多年,总结的一些如何写出漂亮代码的方法,欢迎小伙伴前来借鉴或者讨论。
参考书籍《代码整洁之道》,《写好Python代码的91个建议》

正文开始 代码段1

def get_environment(self, environment_id: int = None, environment_name: str = ""): if environment_id: environment = self.session.query( models.Environment).filter_by( id=environment_id).first() else: environment = self.session.query( models.Environment).filter_by( name=environment_name).first() return environment

这段代码的意思是,我们从调用方获取参数,如果是拿到了environment_id,我们就执行if代码块,如果是我们拿到了environment_name, 我们就执行else代码块。
不知道大家看到这段代码,有没有发现什么问题?

如何编写既高效又优雅的代码实例?


⏱️一分钟思考时间。。。


在这段代码中,我们在进行session.query时,多处使用了重复的代码,这样虽然没有任何程序上的问题,但是看起来非常不优雅。
于是我修改之后,如下

def get_environment(self, environment_id: int = None, environment_name: str = ""): condition = {'id': environment_id} if environment_id else {'name': environment_name} return self.session.query(models.Environment).filter_by(**condition).first() 思考

通过分析发现,我们可以将要查询的变量组装成一个字典形式,然后在session.query中使用双星号解包使用。
这样很巧妙的去掉了冗余不好看的代码结构。

代码段2

if testcase_id and account_type: stmt = ( select( models.Accounts).where( exists_testcase_id, exists_account_type, exists_account_status)) elif testcase_id: stmt = ( select( models.Accounts).where( exists_testcase_id, exists_account_status)) elif account_type: stmt = ( select( models.Accounts).where( exists_account_type, exists_account_status)) elif status: stmt = ( select( models.Accounts).where(exists_account_status)) else: stmt = (select(models.Accounts)) return self.session.execute(stmt).all()

在这段代码中,我们最终是通过参数的组合来查询Accounts数据,在这个函数种我们接受了多个参数,testcase_id,account_type,status。这几个参数又可以产生多种组合。
如果是按照上面的编码方式,那么我们写出来的代码很长而且冗余。
那么如何重构它呢???


⏱️一分钟思考时间。。。


conditions = [] if testcase_id: conditions.append(models.Accounts.testcase_object.has( models.Testcase.testcase_id == testcase_id)) if account_type: conditions.append(models.Accounts.account_type_object.has( models.AccountType.name == account_type)) if status: conditions.append(models.Accounts.status == status) stmt = (select(models.Accounts).where(*conditions)) return self.session.execute(stmt).all() 思考

我们通过分析发现,由于多个参数存在多种组合,那么我们首先需要一个列表来存放这些查询条件,然后通过if-else来添加要查询的条件放入列表中。
最后在倒第二行的时候,统一解包。
这样重构的好处就是,我们不需要再去关注他们有多少种组合的情况,我们只需把要查询的条件,统一存放起来。然后再进行查询操作。