On Monday, February 17, 2014 1:40:41 PM UTC-6, Ben Finney wrote: > Nagy László Zsolt ... writes: > > > Use modules to group your class definitions conceptually. There is > > > no need whatever to separate every class into a different module. > > If there is a consensus, and it is really desireable to put all these > > related classes into the same module, then this is what I'm going to > > do.
It is not desirable to me, and i would argue truthfully, to many others either. > You should use multiple modules to separate the code where it makes > sense, along *conceptual* lines. Make separate modules that each > represent a conceptually-separate area of functionality in your > application, and put the classes which implement that functionality in > that module. Classes with an "s"? As in many classes in one source file? Are you insane man? Why oh why would you torture yourself and others with such advice? Are you some sort of hard disc neat freak? Do you fear cluttering your hard-drive with too many files will overwork it? What of yourself? I'm continually amazed by you "Java haters" who will willingly place burdens on yourself just to spite that "mean old Java". Splitting code into small source files is wise, whereas, creating single monolithic monstrosities like Tkinter should be a sin! A sin that should be punishable by the Exception! As the lines of code increase, so does the complexity of navigating and maintaining large modules. Classes should naturally exist in their own module with the exception of small utility or special use classes that are not exposed publicly. Then you go and intermix the areas of "module source code" and "module API". These are two distinct areas that need not follow the same patterns. You can have 20 classes contained in 20 different source files and then combine them transparently at run-time so that as far as the client is concerned, all the classes exist under one namespace. # ui_mod1.py class One():pass # ui_mod2.py class Two():pass # ui_mod3.py class Three():pass # ui_mod4.py class Four():pass # ui_main.py from ui_mod1 import * from ui_mod2 import * from ui_mod3 import * from ui_mod4 import * At least by this method i can maintain the code base without wearing-out my scroll finger and eventually loosing my mind. THE MORAL: With very few exceptions, please put EVERY class in it's own module. -- https://mail.python.org/mailman/listinfo/python-list