Pourquoi la classe subprocess.Popen ne s'appelle-t-elle pas Subprocess ?[fermé]

StackOverflow https://stackoverflow.com/questions/38197

  •  09-06-2019
  •  | 
  •  

Question

La classe primaire du subprocess le module est le nom Popen, et représente un sous-processus. Popen on dirait que quelqu'un essayait de forcer le nom à suivre un format de dénomination de fonction, plutôt que de choisir un nom qui représente réellement l'objet.Est-ce que quelqu'un sait pourquoi il a été choisi plutôt que quelque chose de simple comme, disons, Subprocess?

Était-ce utile?

La solution

Maintenant, je ne dis pas que c'est le plus grand nom du monde, mais voici l'idée telle que je la comprends.

À l'origine, la famille popen se trouvait dans le module os et était une implémentation du vénérable posix popen.Le passage au module de sous-processus aurait été un moment opportun pour les renommer, mais je suppose que conserver Popen facilite la recherche dans la documentation pour ceux qui ont une longue histoire avec Python ou même avec les vénérables fonctions Posix.

Depuis sa première incarnation posix, Popen a toujours été destiné à ouvrir un processus et à vous permettre de lire et d'écrire à partir de son stdio comme un fichier.Ainsi le mnémonique pour Popen c'est que c'est l'abréviation de ProcessOpen dans une tentative de paraître en quelque sorte ouvert.

Autres conseils

subprocess.Popen remplace le groupe de os.popenX Fonctions POSIX (qui ont une longue histoire).Je suppose que le nom Popen il est plus probable que les personnes habituées aux anciennes fonctions trouvent et utilisent les nouvelles.

Le PEP pour sous-processus (PEP 324) a un peu de discussion sur le nom du module mais pas de classe Popen.Le liste des PPE (Propositions d'amélioration de Python) est en général un excellent point de départ si vous recherchez la justification des fonctionnalités de Python.

Je suppose que le nom a été choisi parce que la fonctionnalité subprocess remplace était autrefois dans le os module comme le os.popen fonction.Il pourrait même exister des moyens d’automatiser la migration entre les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top