Lars Tengnagel wrote: > I'm trying to use the matrix variable to collect a matrix in the file > MatrixInfo which contains a lot of different matrices. Yhe commented line > is the problem. > HOW ???????
> import re > import MatrixInfo > > class Diff: > def __init__(self,filobj,matrix='pam250',begin=0,end='none'): > self.fil = filobj > self.begin = begin > self.end = end > if matrix in MatrixInfo.available_matrices: > ######self.matrix =MatrixInfo.matrix > self.matrix= MatrixInfo.pam250 > else print "matrix don't exist %s" %matrix Assuming available_matrices_dict is a dictionary with the matrices' name as keys: if matrix in MatrixInfo.available_matrices_dict: self.matrix = MatrixInfo.available_matrices_dict[matrix] else: print "matrix don't exist %s" %matrix or a bit more pythonic, since a Diff instance with an unknown matrix probably doesn't make much sense: # you have to handle the exception outside of # Diff.__init__() self.matrix = MatrixInfo.available_matrices_dict[matrix] > self.seqnr=0 > self.basenr=0 > self.dict = {} Now how will the available_matrices_dict dictionary come to be? At the end of MatrixInfo do available_matrices_dict = dict([(name, globals()[name]) for name in available_matrices]) Or you drop the available_matrices list (I suppose) altogether and use a dict literal instead available_matrices_dict = {"pam250": pam250, ...} Peter -- http://mail.python.org/mailman/listinfo/python-list