On Tue, 12 Jun 2018 15:00:44 -0700, Bill Deegan wrote: > Greetings, > > I'm doing some refactoring on a fairly large python codebase. Some of > the files are > 4000 lines long and contain many classes. > > Should I expect any performance hit from splitting some of the classes > out to other files?
Depends on whether you split it out to 4000 one-line files or 10 100 line files. But in practice, no, there will be no runtime performance hit aside from the very small cost of needing to import X files instead of a single file. The actual performance of the classes themselves should be unchanged. However, you'll need to be careful to manage circular dependencies, where module A depends on B which depends on C which depends on A. (Linear dependencies are fine: A depends on B which depends on C, which depends on nothing.) Circular dependencies can be managed in various ways, but the best way to manage them is to avoid them altogether. In other words: if your classes are very tightly coupled, you might have a hard time splitting them into multiple files. If they are loosely coupled, you shouldn't have any trouble at all. -- Steven D'Aprano "Ever since I learned about confirmation bias, I've been seeing it everywhere." -- Jon Ronson -- https://mail.python.org/mailman/listinfo/python-list