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