Provides a serializable data container
Copies params from one model to another.
>>> m = BaseModel()
>>> m.answer = 42
>>> m._question = 'unknown'
>>> m2 = BaseModel()
>>> m2.copy_params(m)
>>> m2._question
'unknown'
>>> m2.answer
42
Returns true if a parameter exists in a model.
>>> m = BaseModel()
>>> m.answer = 42
>>> m.has_param('answer')
True
>>> m.has_param('question')
False
Returns the value of a model parameter.
>>> m = BaseModel()
>>> m.answer = 42
>>> m.param('answer')
42
>>> m.param('another answer', 42)
42
Returns a list of serializable attribute names.
>>> m = BaseModel()
>>> m._question = 'unknown'
>>> m.answer = 42
>>> m.param_names()
['answer']
>>> m.param_names(export=True)
['_question', 'answer']
Wrapper around setattr()
>>> m = BaseModel()
>>> m.answer = 41
>>> m.set_param('answer', 42)
>>> m.answer
42