Matthew Dubins: > def parse(self, data, data_type) > exec "self.__parse_%s(data)" % data_type > For some reason, *it didn't work*.
You can try defining this class attribute: data_types = set("nocall DOB gender Prematurity email languages phone cname pname address duedate".split()) And then a possible method can be: def parse(self, data, data_type): if data_type in Classname.data_types: getattr(self, "__parse_" + data_type)(data) If performance isn't a problem you can move data_types inside the parse method. If performance is a problem, data_types may become a dict, whose values are references to the methods. That you can use as: def parse(self, data, data_type): if data_type in data_types: data_types[data_type](data) Or even as (but may be a little slower): def parse(self, data, data_type): data_types.get(data_type, lambda x: None)(data) Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list