¿Razones detrás de los nombres en clases de Python’s fáciles de confundir, como OS y SYS?

Me he dado cuenta de que una gran cantidad de preguntas en SO, relacionadas con Python, se refieren a personas que cometen errores en su clase Sys, clase de sistema operativo y ninguna clase. Por ejemplo, un caso fácil de confundir es el caso: os.open("something") , open("something") y sys.open("something") . Todavía no he entendido las razones detrás de la denominación de clases, tal vez es solo una evolución.

  1. Me gustaría saber why qué fueron creados con sus nombres actuales?
  2. ¿Los nombres se deben a cosas como tener FD en una clase?
  3. ¿Nombrar porque algunas clases requieren privilegios especiales?
  4. ¿Hasta qué punto es el nombramiento de una solución de diseño?

Si no puede responder la pregunta, no dude en sugerir algunos buenos métodos mnemotécnicos para memorizar las clases y diferenciarlas.

Las funciones incorporadas son cosas que necesita a menudo. No es necesario importar ningún módulo para acceder a ellos y, por lo tanto, tampoco utilice ningún prefijo de módulo. open() es una de esas funciones, ya que abrir archivos es una operación muy común. Abre un archivo y devuelve un objeto de archivo, que es fácil de usar.

El módulo os es para las interfaces del sistema operativo. os.open() es una interfaz en bruto para la interfaz de archivos del sistema operativo. Abre un archivo y devuelve el descriptor de archivo, que normalmente no necesita para nada.

El módulo sys es para cosas específicas del sistema. sys.open() no existe.

Fácil confuso está en el caso: os.open (“algo”), abierto (“algo”) y sys.open (“algo”).

Un “mnemotécnico” es la documentación, disponible en línea o descargada en su estación de trabajo.

El “mnemotécnico” es fácil. Utilice el que cumpla sus requisitos.

¿Por qué fueron creados con sus nombres actuales?

Para mantener el desorden fuera del idioma y en bibliotecas separadas.

¿Los nombres se deben a cosas como tener FD en una clase?

Probablemente. Los FD son una característica del SO, no una característica del idioma. Es por eso que están en una biblioteca separada.

¿Nombrar porque algunas clases requieren privilegios especiales?

De ningún modo.

¿Hasta qué punto es el nombramiento de una solución de diseño?

Para mantener el desorden fuera del idioma y en bibliotecas separadas.