Red de conocimiento informático - Conocimiento de Internet de las cosas - ¿Cómo implementar la configuración de Python?

¿Cómo implementar la configuración de Python?

Por ejemplo, todos los nombres de métodos comienzan con una letra mayúscula, todos los nombres de atributos de datos están precedidos por una cadena única (o simplemente un guión bajo), o los nombres de métodos usan verbos y los nombres de datos usan sustantivos. Tanto los métodos como los usuarios comunes ("clientes") pueden hacer referencia a las propiedades de los datos. En otras palabras, las clases no se pueden utilizar para construir tipos de datos abstractos. De hecho, las clases no se pueden utilizar para construir tipos de datos abstractos.

No hay forma de imponer la ocultación de datos en Python; todo esto se basa en convenciones. (La implementación de Python, por otro lado, está escrita en C, lo que permite ocultar completamente los detalles de la implementación y controlar el acceso a los objetos cuando sea necesario; los módulos de extensión de Python escritos en C tienen la misma funcionalidad).

Los propios clientes deben tener cuidado con los atributos de los datos: pueden romper la coherencia de los datos de clase mantenida por los métodos de clase cambiando arbitrariamente los atributos de datos de los objetos de clase. Tenga en cuenta que los clientes pueden agregar arbitrariamente nuevos atributos de datos a objetos de instancia sin afectar la validez de los métodos, siempre que se tenga cuidado para evitar conflictos de nombres.

Dentro de un método, no existe una forma abreviada de acceder a las propiedades de datos del objeto (u otro método). Creo que esto en realidad aumenta la legibilidad del programa: no hay confusión entre las variables locales y de instancia en las definiciones de métodos. Convencionalmente, la primera variable self de un método se llama self, y esto no es más que un modismo: el nombre self no tiene un significado especial en la configuración de Python. Sin embargo,

Debido a que los usuarios usan esta convención, violarla puede reducir la legibilidad de su programa en otras configuraciones de Python, y es posible que algunos programas de exploración de clases dependan de esta convención). Cualquier objeto de función que sea un atributo de clase define métodos para instancias de esa clase. La definición de la función no necesariamente tiene que estar en la definición de la clase: simplemente asigne el objeto de la función a una variable local en la clase. Por ejemplo:

classComplex:

... .def__init__(self, realpart, imagpart):

self.r=realpart

self.i=imagpart

... .x=Complex(3.0,-4.5)

x.r,x.i

(3.0,-4.5) Ahora , f, g y h son todos atributos de la clase C, que apuntan a objetos de función, por lo que todos son métodos de instancias de C, donde h y g son completamente equivalentes. Tenga en cuenta que debemos evitar este uso para no engañar a los lectores. Los métodos pueden usar el argumento self para hacer referencia a otros métodos de la clase. El argumento self representa el objeto al que pertenecen estos métodos, por ejemplo:

classVirtualAttributes: __vdict=None

__vdict_name=. locals() .keys()[0]

def__init__ (self):

self.__vdict_name=locals().keys()[0]