Работая с python впервые, я обнаружил, что в итоге я пишу несколько классов в одном файле, в отличие от других языков, таких как Java, которые используют один файл на класс.
Обычно эти классы состоят из 1 абстрактного базового класса с 1-2 конкретными реализациями, использование которых незначительно отличается. Я разместил один такой файл ниже:
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))
Как видно выше, у меня есть базовый класс Logger, с парой различий в реализации ниже этого.
Вопрос: это стандарт для python или для любого языка? Какие проблемы могут возникнуть при использовании этой реализации, если таковые имеются?
РЕДАКТИРОВАТЬ: Я на самом деле не ищу руководство по этому конкретному файлу, но в более общем смысле. Что делать, если занятия заканчиваются 3-5 умеренно сложными методами? Есть ли смысл разделять их тогда? Где отсечка, чтобы сказать, что вы должны разбить файл?