On Wednesday, June 17, 2015 at 12:21:32 PM UTC-7, Jason P. wrote: > Hello Python community. > > I come from a classic background in what refers to OOP. Mostly Java and PHP > (> 5.3). I'm used to abstract classes, interfaces, access modifiers and so on. > > Don't get me wrong. I know that despite the differences Python is fully > object oriented. My point is, do you know any book or resource that explains > in deep the pythonic way of doing OOP? > > For example, I'm gonna try to develop a modest application from ground up > using TDD. If it had been done in Java for instance, I would made extensive > use of interfaces to define the boundaries of my system. How would I do > something like that in Python? > > > Many thanks!
You don't need interfaces with Python. Duck typing makes that all possible. This is perfectly valid: class Dog(object): def move(self): print "Dog is moving" class Car(object): def move(self): print "Car is moving" things = [Dog(), Car()] for thing in things: thing.move() Despite Dog and Car being completely different classes with no relationship with each other, the code runs just fine. -- https://mail.python.org/mailman/listinfo/python-list