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