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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top