People who come from strongly typed languages that offer
interfaces often are confused by lack of one in Python. Python, being dynamic typing programming language, follows
duck typing principal. Here we will see how programmer can assert duck typing between two Python classes. Setup environment before proceed:
$ virtualenv env
$ env/bin/pip install wheezy.core
Let play a bit with
duck test `looks like`. Place the following code snippet into file `test.py`:
from wheezy.core.introspection import looks
class IFoo(object):
def foo(self):
pass
class Foo(object):
def bar(self):
pass
assert looks(Foo).like(IFoo)