On Mon, Sep 05, 2016 at 12:24:50PM +0000, Albert-Jan Roskam wrote: > =====> Aha, thank you, I did not know that. So for Python-3-only code, > the idiom is "class SomeClass:", and for Python2/3 code "class > SomeClass(object)".
I prefer to explicitly inherit from object regardless of which version I am using. > What are the most common code changes a developer > needs to make when switching from old- to new-style classes? Apart from making sure you explicitly inherit from object in Python 2 (and optionally the same in 3), there aren't that many. - use super() instead of manually calling the superclass method. # Old way class Parent: ... class Child(Parent): def method(self, arg): result = Parent.method(self, arg) process(result) return result # New way class Parent(object): ... class Child(Parent): def method(self, arg): result = super(Child, self).method(self, arg) # in Python 3, write super().method(arg) process(result) return result Other than that, I don't think there are any *common* changes. There are new features which don't work in old-style classes, like property, but everything else is mostly the same. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor