Perché la classe subprocess.Popen non è denominata Subprocess?[Chiuso]
-
09-06-2019 - |
Domanda
La classe primaria in subprocess
il modulo è il nome Popen
, e rappresenta un sottoprocesso. Popen
sembra che qualcuno stia cercando di forzare il nome a seguire un formato di denominazione delle funzioni, piuttosto che scegliere un nome che rappresenti effettivamente l'oggetto.Qualcuno sa perché è stato scelto rispetto a qualcosa di semplice come, diciamo, Subprocess
?
Soluzione
Ora, non sto dicendo che questo sia il nome più grande del mondo, ma l'idea era questa, per come la intendo io.
Originariamente la famiglia popen era nel modulo os ed era un'implementazione del venerabile posix popen.Lo spostamento nel modulo subprocess sarebbe stato il momento opportuno per rinominarli, ma immagino che mantenere Popen renda più facile la ricerca nei documenti per coloro che hanno una lunga storia con Python o anche con le venerabili funzioni posix.
Dalla sua prima incarnazione posix, Popen
è sempre stato pensato per aprire un processo e consentirti di leggere e scrivere dal suo stdio come un file.Quindi il mnemonico for Popen
è che è l'abbreviazione di ProcessOpen
nel tentativo di sembrare, in un certo senso, aperto.
Altri suggerimenti
subprocess.Popen
sostituisce il gruppo di os.popenX
Funzioni POSIX (che hanno una lunga storia).Suppongo che il nome Popen
rende più probabile che le persone abituate alle vecchie funzioni trovino e utilizzino quelle nuove.
IL PEP per sottoprocesso (PEP 324) si discute un po' sul nome del modulo ma non della classe Popen
.IL elenco delle PEP (Proposte di miglioramento di Python) è in generale un ottimo punto di partenza se stai cercando la logica delle funzionalità di Python.
Suppongo che il nome sia stato scelto per la funzionalità subprocess
sta sostituendo era precedentemente nel os
modulo come os.popen
funzione.Potrebbero esserci anche modi per automatizzare la migrazione tra i due.