Why NOT only one class per file?
Steve Holden
steve at holdenweb.com
Wed Apr 4 17:46:37 EDT 2007
Jarek Zgoda wrote:
> Chris Lasher napisał(a):
>
>> A friend of mine with a programming background in Java and Perl places
>> each class in its own separate file in . I informed him that keeping
>> all related classes together in a single file is more in the Python
>> idiom than one file per class. He asked why, and frankly, his valid
>> question has me flummoxed.
>>
>> I tried to rationalize this Python idiom by claiming a file--a single
>> module--makes for a great container of code which is logically tied
>> together, such as a class and its subclasses. He posited that
>> directories (packages) can tie the files together just as well, and by
>> having the classes as separate files, he can "diff" them to see how
>> they differ, something he wouldn't be able to do with the code all in
>> one file.
>
> I'd not try to rationalize it, it's just natural. The requirement to
> have only one public class per module needs rationalization (other than
> limitation of compiler), not the freedom to have as much of classes in
> module as is needed by program's architecure.
>
The fact that your friend find being able to diff his classes valuable
implies that he isn't taking much advantage of modularity anyway but
instead using copy-and-paste techniques. Of course I may be doing him a
disservice.
In Java *everything* has to be in a class, unlike in Python. The module
seems a much more natural unit of storage to me, and to force us to put
each class in its own module would seem unnatural.
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Recent Ramblings http://holdenweb.blogspot.com
More information about the Python-list
mailing list