def METHOD_NAME(prop_name):
    def fun(self):
        if prop_name in self.other_props:
            return getattr(self.phases[self.other_props[prop_name]], prop_name)()
        if self.thermal is not None:
            return getattr(self.phases[self.thermal], prop_name)()
        raise ValueError("No method specified")
    return fun