What about something like this, I don't know if it seems more or less intuitive
class Gaussian(object): def __init__(self, **kwargs): self.link = kwargs.get('link', 'default') self.alpha = kwargs.get('alpha', 'default')
class GLM(object): def __init__(self, family=Gaussian, family_kwargs={}): self.family = family(**family_kwargs)
A = GLM(family_kwargs=dict(link = 10, alpha = 25)) print A.family.link A.family.link = 50 print A.family.link print A.family.alpha B = GLM() print B.family.link print B.family.alpha
What about something like this, I don't know if it seems more or less intuitive
class Gaussian(object):
def __init__(self, **kwargs):
self.link = kwargs.get('link', 'default')
self.alpha = kwargs.get('alpha', 'default')
class GLM(object): **family_ kwargs)
def __init__(self, family=Gaussian, family_kwargs={}):
self.family = family(
A = GLM(family_ kwargs= dict(link = 10, alpha = 25))
print A.family.link
A.family.link = 50
print A.family.link
print A.family.alpha
B = GLM()
print B.family.link
print B.family.alpha