En travaillant avec python pour la première fois, j'ai constaté que je finissais par écrire plusieurs classes dans le même fichier, ce qui est opposé à d'autres langages comme Java, qui utilise un fichier par classe.
Habituellement, ces classes sont composées d'une classe de base abstraite, avec 1-2 implémentations concrètes dont l'utilisation varie légèrement. J'ai posté un de ces fichiers ci-dessous:
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))
Comme vu ci-dessus, j'ai une classe de base Logger, avec quelques différences d'implémentation en dessous.
La question: est-ce standard pour python, ou pour n'importe quel langage? Quels problèmes pourraient survenir lors de l'utilisation de cette implémentation, le cas échéant?
EDIT: Je ne suis pas vraiment à la recherche de conseils sur ce dossier spécifique , mais dans un sens plus général. Et si les classes devenaient 3-5 méthodes modérément complexes? Serait-il logique de les séparer alors? Où est la limite pour dire que vous devez diviser un fichier?