You might be inheriting and extending classes from a 3rd party package over which you have no control, so sometimes there's no choice. But no, no reason to use old style classes that I can think of.
- Ofer www.mrbroken.com On Tue, Mar 23, 2010 at 2:58 PM, shawnpatapoff <[email protected]>wrote: > Is there any reason not to use the new classes? I changed everything I > was working on to the new. Using old classes was a product of > ignorance not design. > > > On Mar 23, 2:25 pm, Ofer Koren <[email protected]> wrote: > > And If you can't change to new-style classes, don't use 'super': > > > > class B(a): > > def __init__(self, a, b, newVar): > > A.__init__(self, a,b) > > self.var = newVar > > > > - Oferwww.mrbroken.com > > > > On Tue, Mar 23, 2010 at 11:34 AM, shawnpatapoff <[email protected] > >wrote: > > > > > Thanks for the feedback, there was one issue, I was using old style > > > classes, so to be accurate and have the example work: > > > > > class A(object): > > > def __init__(self, a,b): > > > self.a = a > > > self.b = b > > > > > class B(A): > > > def __init__(self, a, b, newVar): > > > super(B, self).__init__(a,b) > > > self.var = var > > > > > need the 'object' to instance a object in the class. > > > > > Thanks again. > > > On Mar 23, 10:47 am, Dado Feigenblatt <[email protected]> wrote: > > > > I uppercased your class names for clarity > > > > This is how you extend the __init__() method, by first calling it on > the > > > > base class. > > > > > > class B(A): > > > > def __init__(self, a, b, newVar) > > > > super(B, self).__init__(a,b) > > > > self.var = var > > > > > > dado > > > > > > shawnpatapoff wrote: > > > > > Trying to find a better way of doing this, and it I have a solution > > > > > but I'm not sure it's the best one. Lets say I have a class and I > want > > > > > to add one more variable to its __init__ when I make a new > instance. > > > > > Right now I'm overloading the init with all its originals and > adding > > > > > what I need. It works, but it seems there should be a better way. > > > > > > > eg: > > > > > class a(): > > > > > def __init__(self, a,b): > > > > > self.a = a > > > > > self.b = b > > > > > > > class b(a): > > > > > def __init__(self, a, b, newVar) > > > > > self.a = a > > > > > self.b = b > > > > > self.var = var > > > > > > > That's how I'm doing now, please tell me there is a cleaner way! > > > > > > > Cheers, > > > > > Shawn > > > > > -- > > >http://groups.google.com/group/python_inside_maya > > > > > To unsubscribe from this group, send email to python_inside_maya+ > > > unsubscribegooglegroups.com or reply to this email with the words > "REMOVE > > > ME" as the subject. > > > > > > -- > http://groups.google.com/group/python_inside_maya > > To unsubscribe from this group, send email to python_inside_maya+ > unsubscribegooglegroups.com or reply to this email with the words "REMOVE > ME" as the subject. > -- http://groups.google.com/group/python_inside_maya To unsubscribe from this group, send email to python_inside_maya+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
