在 Allen Downey 的 Python 2.x 的“Think Python, version 2.0.17”中,Downey 对函数的接口是这样说的:
函数的接口是对它如何使用的总结:参数是什么?函数有什么作用?返回值是多少?如果一个界面“尽可能简单,但不简单”,那么它就是“干净的”。(爱因斯坦)”
我完全不明白这一点。接口是一个书面摘要,如文档字符串,附加到函数的某个地方吗?或者它完全是别的东西?
我是一个完整的编程初学者,所以我没有很多背景可以借鉴。在我目前(非常低)的水平上,我找不到任何我能理解的解释!
快速示例(虽然不是回答问题所必需的):唐尼谈到了画圆圈(在海龟世界的背景下)。他的功能是
def circle(t, r):
circumference = 2 * math.pi * r
n = 50
length = circumference / n
polygon(t, n, length)
Run Code Online (Sandbox Code Playgroud)
其中t是来自 Turtleworld 的海龟(他称之为 Bob),r是要绘制的圆的半径。Polygon 是一个函数,它将海龟、n多边形的边数和(其边的)长度作为参数,并用这些规格绘制多边形。足够高n,这看起来像一个圆圈。
然后他评论道:
该解决方案的一个限制是它
n是一个常数,这意味着对于非常大的圆,线段太长,而对于小圆,我们浪费时间绘制非常小的线段。一种解决方案是通过将函数n作为参数来泛化该函数。这会给用户(无论谁调用circle)更多的控制,但界面会不那么干净。
再次,什么接口?什么是接口?好吧,让我们暂缓一下。
在这个例子中,r 属于接口,因为它指定了要绘制的圆。
n不太合适,因为它涉及如何渲染圆的细节。与其把界面弄得乱七八糟,不如选择一个合适的值n取决于circumference:
def circle(t, r):
circumference = 2 * math.pi * r
n …Run Code Online (Sandbox Code Playgroud)