Podczas pracy z pythonem po raz pierwszy odkryłem, że kończę pisanie wielu klas w tym samym pliku, co jest sprzeczne z innymi językami, takimi jak Java, która używa jednego pliku na klasę.
Zazwyczaj klasy te składają się z 1 abstrakcyjnej klasy bazowej, z 1-2 konkretnymi implementacjami, których użycie różni się nieznacznie. Poniżej zamieściłem jeden taki plik:
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))
Jak widać powyżej, mam klasę bazową Logger, z kilkoma różnicami w implementacji poniżej.
Pytanie: Czy ten standard jest dla Pythona, czy dla dowolnego języka? Jakie problemy mogą wyniknąć z korzystania z tej implementacji, jeśli występują?
EDYCJA: Tak naprawdę nie szukam wskazówek na temat tego konkretnego pliku, ale w bardziej ogólnym sensie. Co jeśli klasy zakończyły się 3-5 umiarkowanie złożonymi metodami? Czy miałoby to sens, aby je podzielić? Gdzie jest granica dla powiedzenia, że powinieneś podzielić plik?