初级班在 subprocess 模块是名称 Popen, , 代表一个子进程。 Popen 听起来好像有人试图强制名称遵循某种函数命名格式,而不是选择实际代表对象是什么的名称。有谁知道为什么选择它而不是简单的东西,比如, Subprocess?

有帮助吗?

解决方案

现在,我并不是说这是世界上最伟大的名字,而是我所理解的想法。

最初,popen 系列位于 os 模块中,是古老的 posix popen 的实现。移动到 subprocess 模块本来是重命名它们的好时机,但我想保留 Popen 可以让那些长期使用 python 甚至古老的 posix 函数的人更容易在文档中找到它们。

从它最早的 posix 化身开始, Popen 始终旨在打开一个进程并允许您像文件一样从其 stdio 读取和写入。因此助记符为 Popen 是它的缩写 ProcessOpen 试图让自己看起来有点开放。

其他提示

subprocess.Popen 替换该组 os.popenX POSIX 函数(有着悠久的历史)。我想这个名字 Popen 使习惯旧功能的人们更有可能找到并使用新功能。

子流程的 PEP (PEP 324) 对模块名称有一些讨论,但没有对类名称进行讨论 Popen. 。这 政治公众人物名单 如果您正在寻找 Python 功能的基本原理,(Python 增强提案)通常是一个很好的起点。

我想选择这个名字是因为功能 subprocess 正在取代以前的 os 模块作为 os.popen 功能。甚至可能有办法在两者之间自动迁移。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top