Уперше працюючи з 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 чи для будь-якої мови? Які проблеми можуть виникнути при використанні цієї реалізації, якщо така є?
EDIT: Я не дуже шукаю вказівки щодо цього конкретного файлу, але в більш загальному сенсі. Що робити, якщо заняття виявились 3-5 помірно складними методами? Чи було б тоді сенсом їх розділити? Де вирізається повідомлення про те, що ви повинні розділити файл?