On Tue, 02 Sep 2008 18:15:07 -0400, Derek Martin wrote: >> Classes represent "things", and class names should be nouns. > > Is that a law?
It's a common guideline. > Classes are instantiated by invoking their class names as a function > call -- the computing equivalent of a verb. Why then, must they be > named as nouns? Can you not, in fact, have classes which describe (or > model) actions? Wouldn't you name them using verbs if you did? Me personally no. I would use `FooAction` instead of `Foo` or something similar. And if they model an action there must be some way to activate the action but the instances of `Popen` are no actions. There's no way to "execute" a `Popen` instance. > That said, this is the most valid point anyone has made... You should > have made it when the module was being designed. :-D > > My point is, if you don't think Popen is a good name for the class, > that's your opinion, but it is only that: an opinion. Like your opinion that it *is* a good name. > Yet some of you state your case as if it is incontrovertable fact. > I've given a good case as to why it IS a good name (one which I > genuinely support), and disagree as you may, none of the points any of > you have made invalidate or even weaken my argument. Maybe from your POV. Facts: It doesn't use the `popen()` function, it gives something more complex than a simple pipe (no obligatory shell, up to three file objects, more attributes and methods), the function used on Windows under the hood is called `CreateProcess()` not `CreatePipe()`. `Popen` creates a process and represents a proxy object to communicate with it, so `Process` is a good name for that concept/"thing". It's a way more self explaining name, even for people who know the `popen()` function because there's a concept called "process" but none called "popen". Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list