通过看到标题,你可以了解我们将要讨论的内容。所以,让我们不要浪费时间,深入讨论这个话题。在写了近三年的函数之后,我想出了六点才能有效地写出它们。在这里,我将尽我所能讨论它们。
一个好功能的钥匙!
- 合理命名
- 有一个单一的责任
- 包括一个docstring
- 返回值
- 不超过50行
- 是幂等的,如果可能的话,是纯的。
让我们深入研究每一个概念。
命名!
喜欢完整的英语单词,而不是缩略语和不知名的缩略语。缩写单词的唯一原因是为了节省打字,但每个现代编辑器都有自动完成的功能。所以,你只需输入一次这个全名。
单一责任
一个职能应该有一个单一的责任。也就是说,它应该做一件事,而只做一件事。一个很好的原因是,如果每个函数只做一件事。只有一个原因可以改变它。
文档字符串
我最近才知道这件事。从那时起,对于每一个函数,我都写了,我包括了它们。
- 每个函数都需要一个docstring。
- 使用正确的语法和标点符号。用完整的句子写。
- 从这个函数所做的事情的一个句子的总结开始。
- 使用指令性语言而不是描述性语言。
- 也可以用作注释(附加优势)。
返回值
函数可以(而且应该)被看作是自成一体的程序。它们以参数的形式接受一些输入,并返回一些结果。参数当然是可选的。然而,从Python内部视图来看,返回值不是可选的。即使您试图创建一个不返回值的函数,也不能。如果一个函数不会返回一个值,Python解释器将强制它返回一个值。
函数长度
函数的长度直接影响可读性和可维护性。所以,保持你的功能简短。50行是一个完全任意的数字,在我看来是合理的。您编写的大多数函数(希望如此)都会更短一些。
幂性与功能纯度
一个幂等函数总是在相同的参数集合下返回相同的值,不管它被调用了多少次。结果不依赖于非局部变量、参数的可变性或来自任何I/O流的数据。
纯函数没有日志语句或print()调用。他们不使用数据库或互联网连接。它们不访问或修改非局部变量。他们不称任何其他非纯函数。
那才是最后的朋友。这些是我在编码过程中学到的关于函数的东西。希望你喜欢。接上我推特更精彩的内容。