Al trabajar con Python por primera vez, descubrí que termino escribiendo varias clases en el mismo archivo, lo que se opone a otros lenguajes como Java, que usa un archivo por clase.
Por lo general, estas clases están formadas por 1 clase base abstracta, con 1-2 implementaciones concretas cuyo uso varía ligeramente. He publicado uno de estos archivos a continuación:
class Logger(object):
def __init__(self, path, fileName):
self.logFile = open(path + '/' + filename, 'w+')
self.logFile.seek(0, 2)
def log(self, stringtoLog):
self.logFile.write(stringToLog)
def __del__(self):
self.logFile.close()
class TestLogger(Logger):
def __init__(self, serialNumber):
Logger.__init__('/tests/ModuleName', serialNumber):
def readStatusLine(self):
self.logFile.seek(0,0)
statusLine = self.logFile.readLine()
self.logFile.seek(0,2)
return StatusLine
def modifyStatusLine(self, newStatusLine):
self.logFile.seek(0,0)
self.logFile.write(newStatusLine)
self.logFile.seek(0,2)
class GenericLogger(Logger):
def __init__(self, fileName):
Logger.__init__('/tests/GPIO', fileName):
def logGPIOError(self, errorCode):
self.logFile.write(str(errorCode))
Como se ve arriba, tengo una clase base Logger, con un par de diferencias de implementación por debajo de eso.
La pregunta: ¿Es este estándar para Python o para cualquier idioma? ¿Qué problemas podrían surgir al usar esta implementación si existe?
EDITAR: Realmente no estoy buscando orientación sobre este archivo específico , pero en un sentido más general. ¿Qué pasa si las clases terminaron siendo 3-5 métodos moderadamente complejos? ¿Tendría sentido dividirlos entonces? ¿Dónde está el límite para decir que debe dividir un archivo?