Lavorando con python per la prima volta, ho scoperto che finisco per scrivere più classi nello stesso file, che si oppone ad altri linguaggi come Java, che usa un file per classe.
Di solito, queste classi sono composte da 1 classe base astratta, con 1-2 implementazioni concrete che l'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 di Logger, con un paio di differenze di implementazione al di sotto di questo.
La domanda: Questo standard è per Python o per qualsiasi lingua? Quali problemi potrebbero sorgere dall'usare questa implementazione, se esiste?
EDIT: non cerco davvero indicazioni su questo file specifico , ma in un senso più generale. Che cosa succede se le classi hanno finito per essere 3-5 metodi moderatamente complessi? Avrebbe senso dividerli allora? Dov'è il limite per dire che dovresti dividere un file?