Lavorando con Python per la prima volta, ho scoperto che finisco per scrivere più classi nello stesso file, al contrario di altre lingue come Java, che utilizza un file per classe.
Di solito, queste classi sono composte da 1 classe di base astratta, con 1-2 implementazioni concrete il cui uso varia leggermente. Ho pubblicato uno di questi file qui sotto:
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))
Come visto sopra, ho una classe base Logger, con un paio di differenze di implementazione al di sotto.
La domanda: questo standard è per Python o per qualsiasi lingua? Quali problemi potrebbero derivare dall'utilizzo di questa implementazione, se presente?
EDIT: Non sto davvero cercando una guida su questo file specifico , ma in senso più generale. E se le classi finissero con 3-5 metodi moderatamente complessi? Avrebbe senso dividerli allora? Dov'è il limite per dire che dovresti dividere un file?