On 15 Mar 2006 15:04:19 -0800, Derek Basch <[EMAIL PROTECTED]> wrote:
> One more question everybody. Say you have a class that performs a > series of evaluations on several strings of peptides. Errr..., no? A class does not perform some operations. A class is a template for objects. What are your objects? If you had a class Peptide for example (I'm guessing here; I'm not exactly fluent in this domain), I would have understood. But what you're describing here is not a class; it's just a set of functions. > Heres the class: > > class PeptideEvaluator: > > def evaluate(self, peptide): > peptide_name = peptide + "Rules!" > result1 = self.test1(peptide, peptide_name) > result2 = self.test2(peptide, peptide_name) > result3 = self.test3(peptide, peptide_name) > > def test1(self, peptide, peptide_name): > f = open(peptide_name + ".txt", "w") > f.write(peptide) > f.close() > > def test2(self, peptide, peptide_name): > f = open(peptide_name + ".txt", "w") > f.write(peptide) > f.close() > > def test3(self, peptide, peptide_name): > f = open(peptide_name + ".txt", "w") > f.write(peptide) > f.close() > > 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. QED: this "class" has no need at all for attributes, and does not even have a constructor. This is usually a strong signal that what you're doing is wrong. Just turn this class into a module containing functions. Or put these methods into another class (the Peptide class may be a good candidate if you have one; "evaluating" a peptide seems to be an operation that you do on peptides). HTH -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65\'*9--56l7+-'])" -- http://mail.python.org/mailman/listinfo/python-list