On 15 Mar 2006 15:04:19 -0800
"Derek Basch" <[EMAIL PROTECTED]> wrote:
> 
> class PeptideEvaluator:
> 
>     def evaluate(self, peptide):
> [...]
> 
> So, you instantiate a class called "PeptideEvaluator" and
> pass in each string to its "evaluate" method. Now you have
> to repeatedly pass the peptide and peptide_name to each
> function. According to what everyone has said declaring
> them as class variables is bad because they are not
> related to the state of the "PeptideEvaluator". How can I
> avoid having to pass the same parameters all over a class?
> I can';t quite seem to wrap my head around this one.

"PeptideEvaluator" suggests it's meant to act on some
"data" object and produce a "result" object (you're
reinventing functions, using object-oriented machinery?).

A more usual OOP approach is to make an object "Peptide"
which models the peptide, then put the methods on it.
When you instantiate "Peptide" you tell it what its sequence
is, and the methods provide your analysis -- you ask the
object itself to give you the results.  Then, of course,
the peptide sequence *IS* a fundamental property of the
object.

If you have to separate this functionality into a separate
object, you should immediately be asking yourself "why"? Is
there a compelling reason you need *two* objects that have
to communicate over an interface when one will do? 
(Sometimes there are).

-- 
Terry Hancock ([EMAIL PROTECTED])
Anansi Spaceworks http://www.AnansiSpaceworks.com

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to