一、函数参数与返回值基础知识
1、不要使用可变类型(list等)作为参数默认值,用None
来代替。
2、使用标记对象,可以严格区分函数调用时是否提供了某个参数。
3、定义仅限关键字参数,可以强制要求调用方提供参数名,提升可读性。
4、函数应当拥有稳定的返回类型,不要返回多种类型。
5、适合返回None
的情况——操作类函数、查询类型函数中表示意料之外的缺失值。
6、在执行失败时,相比返回None
,直接抛出异常更合适。
7、如果提前返回结果可以提升可读性,就提前返回,不要去追求所谓的“单一出口”。
二、代码可维护性技巧
1、不要编写太长的函数,虽然长度没有强制标准,但65行是一个危险的信号。
2、圈复杂度是评估函数复杂程度的常用指标,一般超过10的函数都需要重构。
3、抽象与分层思想可以帮助我们更好地构建与管理复杂的系统。
4、同一个函数内的代码应该处于同一抽象级别。
三、函数与状态
1、没有副作用的无状态纯函数比较易于理解、维护,但大多数时候“状态”不可避免。
2、避免使用全局变量给函数增加状态。
3、当函数状态较为简单时,可以使用闭包技巧。
4、当函数需要较为复杂的状态管理时,建议定义类来管理状态。
四、语言机制对函数的影响
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。