Python:
将代码组织成函数

如何操作:

假设你正在编写一个脚本来计算一个数字的平方和立方。不使用函数,会是一团乱麻的重复:

num = 4
square = num * num
cube = num * num * num
print(f"Square: {square}, Cube: {cube}")

num = 5
square = num * num
cube = num * num * num
print(f"Square: {square}, Cube: {cube}")

输出:

Square: 16, Cube: 64
Square: 25, Cube: 125

使用函数,会更整洁:

def square(n):
    return n * n

def cube(n):
    return n ** 3

num = 4
print(f"Square: {square(num)}, Cube: {cube(num)}")

num = 5
print(f"Square: {square(num)}, Cube: {cube(num)}")

输出:

Square: 16, Cube: 64
Square: 25, Cube: 125

深入探究

早年间,当程序还很简单的时候,只写一列指令或许可以应付。但随着软件变得更复杂,开发者们意识到他们一次又一次地重写相同的代码。于是,函数登场了——执行单一操作的可重用代码块。

函数的替代品包括类(将函数与它们操作的数据捆绑)和内联代码(就在你需要的地方提供智能,但对于复杂任务来说风险很大)。在实现上,技巧不仅仅在于创建函数,而是要使它们做好一件事 —— 想想单一职责原则。理想情况下,函数应该是无状态的,意味着数据进出没有惊喜。

另请参见

  • 官方Python关于函数的教程:https://docs.python.org/3/tutorial/controlflow.html#defining-functions
  • 由罗伯特·C·马丁撰写的《代码整洁之道》, 关于如何编写整洁函数的原则。
  • 马丁·福勒的《重构:改善既有代码的设计》,其中包含了组织代码的示例。