If you like my suggestion for Bandpass, then this could be modified the same way.  I'd recommend having a function argument that works the same way as I did for Bandpass, and then have another argument that sets whether this function is in terms of lambda, nu, or photons.  Then you can adjust the function with a lambda statement.  e.g.
```
if flux_type == 'flambda':
    self.fphotons = lambda wave : self.raw_func / wave
elif flux_type == 'fnu':
    self.fphotons = lambda wave : self.raw_func * wave
else:
    self.fphotons = self.raw_func
```