Porque é que a classe subprocess.Popen não nomeado Subprocess?

votos
3

A classe principal no subprocessmódulo é o nome Popen, e representa um subprocesso. Popensoa como se alguém estivesse tentando forçar o nome de seguir algum formato função de nomeação, em vez de escolhendo um nome que realmente representa o que é o objeto. Alguém sabe por que foi escolhido em detrimento de algo simples como, digamos, Subprocess?

Publicado 01/09/2008 em 18:40
fonte usuário
Em outras línguas...                            


3 respostas

votos
8

Agora, eu não estou dizendo que este é o maior nome do mundo, mas aqui foi a ideia de como eu o entendo.

Originalmente, a família popen estava no módulo os e foi uma implementação do popen posix venerável. O movimento para o módulo subprocesso teria sido um momento oportuno para renomeá-los, mas eu acho que manter Popen torna mais fácil de encontrar nos docs para aqueles que têm uma longa história com python ou mesmo para as funções POSIX veneráveis.

Desde a sua primeira encarnação posix, Popensempre foi a intenção de abrir um processo e permitem ler e escrever a partir de sua stdio como um arquivo. Assim, o mnemônico para Popené que é curto para ProcessOpenna tentativa de tipo de, sorta, parecer aberto.

Respondeu 01/09/2008 em 18:57
fonte usuário

votos
5

subprocess.Popensubstitui o grupo de os.popenXfunções POSIX (que têm uma longa história). Suponho que o nome Popentorna mais provável para as pessoas usadas para as antigas funções para encontrar e usar os novos.

O PEP para subprocess (PEP 324) tem um pouco de discussão sobre o nome do módulo, mas não da classe Popen. A lista de PEPs (propostas de melhoria Python) é, em geral, um excelente lugar para começar, se você está procurando a justificativa para recursos do Python.

Respondeu 01/09/2008 em 18:50
fonte usuário

votos
-1

Suponho que o nome foi escolhido porque a funcionalidade subprocessestá substituindo era anteriormente no osmódulo como a os.popenfunção. Não poderia haver até mesmo maneiras de automatizar a migração entre os dois.

Respondeu 01/09/2008 em 18:47
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more