python - Create a new class definition with different default arguments, using some other class definition? -
say have following class in python 2.7:
class x(): def __init__(self, alpha=1): self.alpha = alpha print self.alpha def beta(self, gamma=1): self.gamma = gamma self.omega = self.alpha + self.gamma print self.omega i want use class definition create class definition different default arguments, e.g. like:
y = f(x, alpha=2, gamma=2) or
y = f(x, __init__.alpha=2, beta.gamma=2) which should equivalent to:
class y(): def __init__(self, alpha=2): self.alpha = alpha print self.alpha def beta(self, gamma=2): self.gamma = gamma self.omega = self.alpha + self.gamma print self.omega is possible in python 2.7 (or 3?)?
(i know can use functools.partial equivalent functions; wondering if there similar classes)
you can write function creates classes you:
def makeclass(alpha, gamma): class c(): def __init__(self, alpha=alpha): self.alpha = alpha print self.alpha def beta(self, gamma=gamma): self.gamma = gamma self.omega = self.alpha + self.gamma print self.omega return c >>> x = makeclass(1, 1) >>> y = makeclass(2, 2) >>> x = x() # x class, x instance 1 >>> x.beta() 2 >>> y = y() 2 >>> y.beta() 4
Comments
Post a Comment