模块中的主要类subprocess
是 name Popen
,代表一个子进程。Popen
听起来有人试图强制名称遵循某种函数命名格式,而不是选择一个实际代表对象的名称。有谁知道为什么选择它而不是简单的东西,比如,Subprocess
?
Jeremy Banks
问问题
686 次
3 回答
8
现在,我并不是说这是世界上最伟大的名字,但这是我理解的想法。
最初,popen 系列位于 os 模块中,是古老的 posix popen 的实现。移动到 subprocess 模块本来是重命名它们的好时机,但我想保留 Popen 可以让那些在 python 甚至是古老的 posix 函数方面有悠久历史的人更容易在文档中找到。
从它最早的 posix 化身开始,它就Popen
一直意味着打开一个进程并允许您像文件一样从它的 stdio 读取和写入。因此,它的助记符Popen
是它的缩写,ProcessOpen
试图看起来有点像打开。
于 2008-09-01T17:57:42.633 回答
5
subprocess.Popen
替换os.popenX
POSIX 函数组(历史悠久)。我想这个名字Popen
让习惯了旧功能的人更有可能找到和使用新功能。
子进程的PEP (PEP 324)对模块的名称进行了一些讨论,但对类的名称没有讨论Popen
。如果您正在寻找 Python 功能的基本原理,那么 PEP(Python 增强提案)列表通常是一个很好的起点。
于 2008-09-01T17:50:26.473 回答
-1
我想选择这个名称是因为subprocess
要替换的功能以前在os
模块中作为os.popen
功能。甚至可能有办法在两者之间自动迁移。
于 2008-09-01T17:47:07.853 回答