On Nov 2, 3:11 am, Peng Yu <pengyu...@gmail.com> wrote: > I recently asked how to support one class/function per module under > the title 'How to import only one module in a package when the package > __init__.py has already imports the modules?' I summarize my key > points below. In particular, I have to two questions: > 1. What disadvantages there are to enforce one class/function per file? > 2. How to better support one class/function per file in python?
Others have told you to discard your biases. I would tell you to suspend them for a while (including our biases against your biases) and try to use emacs+ecb > > ------------------------------------------------------------------------------ > I prefer organized my code one class/function per file (i.e per module > in python). I know the majority of programmers don't use this > approach. Therefore, I'm wondering what its disadvantage is. > > The advantages of one-function/class-per-file that I am aware of are > the following items (maybe incomplete). > 1. It is easy to see what functions and classes there are just by > browsing the source directory, without the need of opening the file by > an editor. Primary intention of ecb > 2. Testing code for a function/class can be organized along with the > module for the function/class, which also makes it easier to keep > track of the testing code for any function/class. > 3. It is easy to move a function/class from one package to another > by just moving files around. If an editing task is found hard it just means youve never used emacs! > 4. It is easy change variable names, etc., for a function/class by > replacement in a file without worrying accidentally change variable > names in other functions. > I have used the above approach on a C++ project. And I use vim + ctags > to navigate from a reference of a class/funciton to its definition. So > far it works fine. Should be possible to code this up in about 10 lines of emacs Simple workaround is to select the function/class and run search- replace on the selection -- http://mail.python.org/mailman/listinfo/python-list