位置: 编程技术 - 正文

高质量Python代码编写的5个优化技巧(高效的python)

编辑:rootadmin

推荐整理分享高质量Python代码编写的5个优化技巧(高效的python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:优秀的python代码,python代码大全,有用的python代码,优秀的python代码,python高效编程,python高效编程,python代码大全,优秀的python代码,内容如对您有帮助,希望把文章链接给更多的朋友!

如今我使用 Python 已经很长时间了,但当我回顾之前写的一些代码时,有时候会感到很沮丧。例如,最早使用 Python 时,我写了一个名为 Sudoku 的游戏(GitHub地址: 或者 requires.txt 文件,当然,这种错误我肯定不会再犯!

由此,我总结了多年来自己所编写的 Python 代码的质量变化过程。它们变得更加简洁、健壮、易读。但是什么原因使得 Python 代码变得更好呢?

在本文中笔者将与大家共同探讨一些 Python 代码的优化手段,或大或小。希望以此帮助你提高 Python 代码的质量。当然,这些方式也可以适用于其他编程语言和技术。

1. 将代码设置为可通过 PIP 安装的软件包

当你想要使用一个新的 Python 包时,如果可以使用 “pip install”命令跟上包名或者包的位置来安装的话,就会非常方便。

有很多方法可以实现这一点,我的“go to”项目实现方法是创建一个 setup.py 文件。

假设我们在“flask_example.py”中有一个简单的 Flask 程序:

我们可以将其设置为一个可安装的 Python 包。方法是:首先把它移动到一个单独的文件夹中(我们称之为“flask_example /”),然后在项目根文件夹中创建一个如下所示的setup.py 文件:

这样做可以带来一系列优点。 首先,你可以使用“pip install -e”在本地安装你的应用程序。这样,开发人员可以轻松克隆和安装项目,因为 setup.py 文件将会处理掉所有繁重的工作。

其次,使用 setup.py 文件来进行依赖关系管理。install_requires 变量能够定义要使用的软件包以及版本。如果你不确定使用的软件包名称和版本,可以运行“pip freeze”来查看它们。

最后,它可以为你的程序包定义入口点,通过简单运行“runserver”即可在命令行中执行代码。

2. 借助 linter 工具捕获代码错误

使用 linter(语法检查)可以自动修复代码的语法问题。PyLint 是一款强大的 Python 版本的 linter 工具,如果你使用类似 Git 这样的版本控制系统,可以在提交代码之前让 Git 通过一个 linter 运行代码来解决语法问题。

首先需要安装 PyLint 软件包:

pip install pylint

然后,将以下代码添加到.git/hooks/pre-commit。如果你已经有一个 pre-commit hook,那么只需将 pylint 命令附加到文件的末尾即可。

高质量Python代码编写的5个优化技巧(高效的python)

这样做之后就可以在代码提交到 Git 存储库之前自动捕获各种错误。除了语法错误之外,它还能捕捉一些其他的 linter 工具能够捕捉到的常见错误。

3. 尽量使用绝对路径导入而不是相对路径

在 Python 中,使用相对路径导入模块的情况很少(例如 from . import <模块名>)。如果你已经为 Python 项目创建一个 setup.py(或者使用其他类似的机制)文件,那么你可以简单地通过模块的完整路径引用其子模块。

PEP-8(Python风格指南) 推崇绝对路径导入。这样的话包名更加直观,根据 Python 软件基金会的说法就是“更规范”。

使用相对路径的做法很快就会变成一场噩梦。早期的时候可能没有问题,但是一旦你改名了模块路径或者进行重大的重构之后,它真的会让你很头痛。

4. 上下文管理(with 关键字)

无论何时打开文件、流或者连接,你通常都会使用上下文管理器。上下文管理器很有用,它能够处理文件的关闭并抛出异常。Python 中使用 with 关键字可以很好的实现该功能。

大多数 Python 初学者可能会使用如下方式写入文件:

这样做很简单,但是想象一下这种情况:假设你在文件中写入了数千行,不幸的是突然抛出异常,你的文件并未正确关闭,此时你已经写入文件的所有数据都会损坏或者丢失。

不用担心,通过一些简单的重构,即使遇到异常我们也可以确保文件正常关闭。我们可以这样做:

非常简单!并且代码变得更加简洁。你还可以使用单个“with”语句打开多个上下文管理器,而无需嵌套多个“with”语句。

5. 使用直观、贴切的函数和变量名

在 Python 中,很容易对函数和返回值产生疑惑。特别是当你调用某些库里的函数时。如果你能够避免开发者通过查询文档才能得知函数功能,这样的时间节省将是一个非常有价值的改进。如何做到呢?如何改变一些简单的变量名称来节省开发时间呢?

在命名函数或变量名时,我会着重考虑3点:

函数或变量的功能 与函数或变量相关联的单位 函数或变量计算的数据类型

例如,如果我想创建一个函数来计算一个矩形的面积,我将函数命名为“calc_rect_area”。但这并没有给用户提供足够的信息。函数会返回值吗?还是将值存储在其他某个地方?返回值的单位是英尺还是米呢?

为了使函数名提供更多信息,我将其修改为“get_rect_area_sq_ft”。这使得用户清楚地知道该函数获取并返回面积,并且单位是英尺。

如果你使用一些更加友好的函数和变量名为开发人员节省5分钟,这些时间累积起来将大大提升开发者的效率。

总结

这些方法是我多年使用 Python 编程所积累的经验。有些是我自己的总结,有些来自他人的指点。我希望上述建议能够助你写出更好的 Python 代码。

作者丨Michael Washburn Jr.译者丨安翔

标签: 高效的python

本文链接地址:https://www.jiuchutong.com/biancheng/372268.html 转载请保留说明!

上一篇:python使用fork实现守护进程的方法(python for key in)

下一篇:Python编程使用NLTK进行自然语言处理详解(python的nltk)

  • 一人在两家公司上班怎么缴纳个税
  • 个税返还什么时候到账
  • 小规模纳税人滚动累计
  • 怎么算毛利润计算公式
  • 住房贷款专项扣除
  • 成本核算需要哪些基础工作
  • 外国人在中国工作签证
  • 增值税零申报附加税费情况表没发保存
  • 营改增前未完工的老项目可以开专票吗
  • 白酒销售环节交消费税吗
  • 票据和结算凭证上的签章
  • 房地产计税毛利率什么意思
  • 当月确认收入下年怎么算
  • 期初余额什么时候在借方什么时候在贷方
  • 工程预收账款的会计分录
  • 收到补助款的会计分录
  • 收到供应商违约金 发票
  • 购买货物待销售会计分录
  • 房地产企业工程款支付流程
  • 微信支付对公账户
  • 企业取得的信托计划分红缴企业所得税吗
  • 印刷专票税率是几个点
  • 小规模纳税申报表
  • 成本费用跨年度怎么计算
  • 现金存入对公账户用途写什么
  • 理财代持有法律效力吗
  • 子公司注销如何做账
  • 金融会计风险及防范措施研究目的和意义
  • 液晶显示器容易坏点
  • 不动产售后回租如何处理
  • 清晨暴雨的说说
  • 企业政策性拆迁资产重置算支出吗
  • 减征增值税会计处理
  • 办公室设计费计入什么
  • php反射获取方法参数
  • thinkphp怎么用
  • Vue Router4 ,prams 传参失效和报错问题
  • vue3技巧
  • api接口使用方法
  • 前端schema
  • 增值税期末留抵退税
  • 制造费用转入什么
  • 为什么分红不影响损益
  • 银行账户管理的直接责任人是共享中心核算会计
  • 11-ElementUI
  • 实施资本公积金的目的
  • 车票增值税抵扣怎么操作
  • 职工福利费允许扣除比例
  • linux中备份
  • 卖家电的税点是多少呀
  • 分红需要满足的条件包括
  • 资产负债表是怎么核对的
  • 小中央空调多少钱一台
  • 现金管理办法的内容包括
  • 企业支付宝扣费
  • 应收账款多久收不回来作为坏账
  • 税款返点如何做账务处理
  • 专票不报销公司查得到吗
  • 背书转让为什么记应收票据
  • 在分公司签的合同能转到总公司吗?
  • 金蝶kis专业版怎么备份账套
  • 教育经费支出
  • mysql通过find_in_set()函数实现where in()顺序排序
  • Windows 8.1下MySQL5.7 忘记root 密码的解决方法
  • debian系统教程
  • windows任务管理器命令
  • linux所谓的free
  • badcommandorfilename是什么意思
  • xp怎么删除电脑系统
  • winhlp32.exe - winhlp32是什么进程
  • 虚拟机里安装centos7
  • mac之间传送帐号怎么传送
  • scardsvr32.exe - scardsvr32是什么进程 有什么用
  • win10粘滞键怎么解除
  • 如何删除win8系统
  • win7ie8和ie11
  • node.js网站
  • android 桌面开发
  • 亮点纷呈的意思和造句
  • 广东电子税务局官网登录入口手机版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设