Al igual que Java (o php), estoy acostumbrado a separar las clases en archivos.
¿Es el mismo trato en Python? Además, ¿cómo debo nombrar el archivo?
en minúsculas como classname.py o lo mismo que ClassName.py?
¿Necesito hacer algo especial si quiero crear un objeto de esta clase o es el hecho de que es en el mismo "proyecto" (netbeans) hace que sea aceptable para crear un objeto de ella?¿Las clases en Python están en diferentes archivos?
Respuesta
En Python, un archivo se llama module. Un módulo puede consistir en múltiples clases o funciones.
Como Python es no solo un idioma OO, no tiene sentido tener una regla que diga que un archivo solo debe contener una clase.
Un archivo (módulo) debe contener clases/funciones que pertenecen juntos, es decir, proporcionar una funcionalidad similar o dependen unos de otros.
Por supuesto, no debes exagerar esto. La legibilidad realmente sufre si su módulo consiste en demasiadas clases o funciones. Entonces es probable que sea hora de reagrupar la funcionalidad en diferentes módulos y crear packages.
Para convenciones de nombres, es posible que desee leer PEP 8 pero en resumen:
nombres genéricos
Casi sin excepción, los nombres de clase de uso de la convención CapWords. Las clases para uso interno tienen un guion bajo adicional.
y
paquete y los nombres de módulo
módulos deben tener nombres, todo en minúsculas cortos. Los subrayados se pueden usar en el nombre del módulo si mejora la legibilidad. los paquetes de Python deben también tienen nombres, todo en minúsculas cortos, aunque el uso de guiones es desanime.
Desde nombres de los módulos se asignan a los nombres de archivo, y algunos sistemas de archivos son sensible a mayúsculas y truncar los nombres largos, es importante que el módulo nombres serán elegidos para ser bastante corto - esto no será un problema en Unix , pero puede ser un problema cuando el código se transporta a versiones anteriores de Mac o de Windows o DOS.
Para crear una instancia de un objeto, que tiene que importar la clase en su archivo. MI.g
>>> from mymodule import MyClass
>>> obj = MyClass()
o
>>> import mymodule
>>> obj = mymodule.MyClass()
o
>>> from mypackage.mymodule import MyClass
>>> obj = MyClass()
Usted está pidiendo cosas básicas esenciales, por lo que recomendamos leer la tutorial.
También para nombrar ver PEP8 http: //www.python. org/dev/peps/pep-0008/ – Mark
Ok, dado que se llama módulo, ¿debo importarlo? y si es así, digamos que mi nombre de archivo es el site.py Quiero utilizar las clases de que en mi otra blabla.py archivo, no escribo algo así como site.py importación? – Asaf
@Asaf: ver mi respuesta actualizada. Cómo tiene que importar depende de cosas diferentes. Si los módulos están en el mismo paquete, puede importar el módulo. Si no, debes importar el paquete también. ** Nunca ** incluye el sufijo del archivo (es decir, '.py'). Lea el tutorial y busque aquí en SO sobre cómo importar correctamente. Esta pregunta ya fue hecha. –
No, puede definir varias clases (y funciones, etc.) en un solo archivo. Un archivo también se llama módulo.
utilizar las clases/funciones definidas en el módulo/archivo, tendrá que import
el módulo/archivo.
- 1. ¿Es costoso en Python poner clases en diferentes archivos?
- 2. ¿Cómo maneja Python las clases en archivos separados o se supone que están en un solo archivo?
- 3. compruebe qué archivos están abiertos en Python
- 4. ¿Están seguras las clases de Static?
- 5. Cómo funciona OOP para 'incluir' clases almacenadas en archivos diferentes
- 6. __key__ parámetro para las clases en Python
- 7. Registro entre clases en python
- 8. ¿Es posible tener dos clases con el mismo nombre si están en carpetas diferentes?
- 9. ¿Cómo usar diferentes archivos .settings para diferentes entornos en .NET?
- 10. Clases estáticas en Python
- 11. Herencia múltiple con las mismas clases base en Python
- 12. Dos clases HTTPService diferentes en Flex
- 13. ¿Por qué las clases no están selladas por defecto?
- 14. Objective-C aplicación parcial de las clases en archivos separados
- 15. Forma automática de poner todas las clases en archivos separados
- 16. ¿Dónde están las pruebas unitarias para clases Java "nativas"?
- 17. estructura en diferentes archivos .cpp
- 18. Fuentes idénticas de Java compilan en clases binarias diferentes
- 19. Clases de "amigo" en python
- 20. Tipos y clases en Python
- 21. Registrando en dos archivos con configuraciones diferentes
- 22. Creando dinámicamente las clases en python y __repr__
- 23. Cómo crear propiedades abstractas en las clases abstractas de Python
- 24. Python: utilizando doctests para las clases
- 25. Python: herencia de las clases antiguas
- 26. Las declaraciones parciales no deben especificar diferentes clases base
- 27. ¿Cuáles son las diferencias en las diferentes clases de casos de prueba de Android?
- 28. android.net vs java.net y las diferentes clases URI
- 29. clases en varios archivos en C++
- 30. Las declaraciones parciales de no deben especificar diferentes clases base
Duplicado: http://stackoverflow.com/questions/106896/how-many-python-classes-should-i-put-in-one-file –