为了账号安全,请及时绑定邮箱和手机立即绑定

为什么subprocess.Popen类没有命名为Subprocess?

为什么subprocess.Popen类没有命名为Subprocess?

肥皂起泡泡 2021-03-21 16:20:10
subprocess模块中的主要类是name Popen,它代表一个子进程。Popen听起来好像有人试图强迫名称遵循某种函数命名格式,而不是选择实际上代表对象的名称。有谁知道为什么选择了简单的东西,比如说Subprocess?
查看完整描述

3 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

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

最初,popen系列位于os模块中,并且是古老的posix popen的实现。转移到子进程模块是重命名它们的最佳时机,但是我想保留Popen可以使他们在python中拥有悠久的历史,甚至是古老的posix函数的文档更容易找到。

从其最早的posix化身开始,Popen一直旨在打开一个Process,并允许您像文件一样从其stdio进行读写。因此,助记符PopenProcessOpen试图在某种程度上看起来像是开放的简称。


查看完整回答
反对 回复 2021-03-22
?
茅侃侃

TA贡献1842条经验 获得超21个赞

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

子流程的PEP(PEP 324)对模块名称进行了一些讨论,但对class却没有进行讨论Popen。该执行点的名单(Python的增强建议)一般,如果你正在寻找的Python的功能原理,以一个很好的开端。


查看完整回答
反对 回复 2021-03-22
?
catspeake

TA贡献1111条经验 获得超0个赞

我想选择这个名称是因为该功能subprocess要替换的功能以前是在os模块中os.popen。甚至可能存在自动进行两者之间迁移的方法。


查看完整回答
反对 回复 2021-03-22
  • 3 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信