Ao trabalhar com python pela primeira vez, descobri que acabei escrevendo várias classes no mesmo arquivo, o que se opõe a outras linguagens como Java, que usa um arquivo por classe.
Geralmente, essas classes são compostas de uma classe base abstrata, com 1-2 implementações concretas cujo uso varia um pouco. Publiquei um desses arquivos abaixo:
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 visto acima, eu tenho uma classe base do Logger, com algumas diferenças de implementação abaixo disso.
A pergunta: esse padrão é para python ou para qualquer idioma? Quais problemas podem surgir ao usar esta implementação, se houver?
Edição: Eu realmente não estou procurando orientação sobre esse arquivo específico , mas em um sentido mais geral. E se as aulas acabassem sendo 3-5 métodos moderadamente complexos? Faria sentido separá-los então? Onde está o ponto de corte para dizer que você deve dividir um arquivo?