Python中Subroutine与Function是否存在差异?官方定义求证
Python中Function与Subroutine的区别求证
我在查阅Python官方文档的协程相关内容时,看到官方给出如下定义:
Coroutines are a more generalized form of subroutines. Subroutines are entered at one point and exited at another point. Coroutines can be entered, exited, and resumed at many different points.
但在官方术语表中并未找到subroutine的定义。我个人认为Python中function与subroutine并无区别,但未在官方文档中找到明确依据,特此求证:二者是否真的存在差异?若存在,区别是什么?
在Python的语境里,function(函数)和subroutine(子例程)本质是同一个概念的不同表述,你觉得二者没区别的判断是完全正确的。
具体说明:
subroutine是计算机科学领域的通用术语,泛指一段可复用、执行特定任务的代码块,是一个更宽泛的概念;而function是Python中实现这类代码块的具体语法形式(用def或lambda定义)。- 官方文档在对比协程时使用
subroutine,是为了用通用术语凸显协程的特性——普通子例程(也就是Python里的函数)是单入口、单出口的执行流程,一旦开始就会执行到结束才返回;而协程支持暂停、恢复,能在多个点进出,是子例程的泛化形式。 - 虽然Python官方术语表没单独定义
subroutine,但在不少官方文档、PEP(Python增强提案)中,会把function、method归为subroutine的具体类型。比如你用def定义的普通函数,就是标准的subroutine:从函数开头进入,到return或函数末尾退出,全程不会主动暂停。
简单来说,在Python里不需要刻意区分这两个词,官方提到subroutine时,几乎就是指我们日常写的函数。
内容的提问来源于stack exchange,提问作者rawwar
相关产品推荐
相关产品推荐

