第 7 章 函数(1)
朱雷
第 7 章 函数
假如你把编程语言里的所有常见概念,比如循环、分支、异常、函数等,全部一股脑儿摆在我面前,问我最喜欢哪个,我会毫不犹豫地选择“函数”(function)。
我对函数的喜爱,最直接的原因来自于对重复代码的厌恶。通过函数,我可以把一段段逻辑封装成可复用的小单位,成片地消除项目里的重复代码。
试想你正在给系统开发一个新功能,在写代码时,你发现新功能的主要逻辑和一个旧功能非常类似,于是你认真读了一遍旧代码,并从中提炼出了好几个函数。通过复用这些函数,你只增加了寥寥几行代码,就完成了新功能开发——还有比这更让人有成就感的事情吗?
而消除重复代码,只是函数所提供给我们的众多好处之一。如果以它为起点,向四周继续发散,你会发现更多有趣的编程概念,包括高阶函数(higher-order function)、闭包(closure)、装饰器(decorator),等等。深入理解和掌握这些概念,是成为一名合格程序员的必经之路。
话题回到 Python 里的函数。我们知道,Python 是一门支持面向对象(object-oriented)的编程语言,但除此之外,Python 对函数的支持也毫不逊色。
从基础开始,我们最常用的函数定义方式是使用 def 语句:
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
Python函数的基础知识和常用技巧是本文的重点。文章深入探讨了函数的重要性和优势,包括消除重复代码、支持高阶函数、闭包和装饰器等。作者介绍了函数的定义方式,包括使用 def 语句和 lambda 关键字定义函数,以及函数作为一等对象的特性。此外,分享了编写好函数的技巧,包括避免将可变类型作为参数默认值,使用 None 替代可变类型默认值,以及定义特殊对象来区分是否提供了默认参数。文章还介绍了函数参数的使用建议,包括使用关键字参数模式提高代码可读性,以及通过特殊的参数定义语法强制调用方提供参数名。另外,介绍了Python标准库中与函数关系紧密的模块functools。其中,通过使用 functools 模块提供的高阶函数 partial(),可以简化函数定义,使代码更简洁。另外,通过 lru_cache() 函数,可以方便地给函数加上缓存功能,提高函数执行效率。文章还介绍了函数式编程领域的术语纯函数,以及在处理字符串时使用正则表达式的案例故事。整体而言,本文内容深入浅出,适合初学者快速了解Python函数的基础知识和常用技巧。文章通过实例和案例清晰地展示了函数的定义、使用技巧以及与其他Python特性的结合,为读者提供了全面的学习参考。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 工匠:案例、技巧与工程实践》
《Python 工匠:案例、技巧与工程实践》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论