Implements Implementation
Join the DZone community and get the full member experience.
Join For Free# See if an object implements a given interfase
>>>def implements(obj,cls):
original = dir(obj.__class__)
target = dir(cls)
for x in target:
if x not in original:
return False
else:
return True
# Test code
>>> class Food(object):
def spoil(self):
"""Foods may get spoiled"""
raise NotImplementedError
>>> class Spam(Food):
def get_slice(self,width):
"""width in cm of the slice"""
raise NotImplementedError
>>> class Eggs(Food):
def fry(self):
"""Fry the eggs"""
raise NotImplementedError
>>> s = Spam()
>>> e = Eggs()
>>> implements(s,Spam), implements(e,Eggs) # s implements the Spam protocol
(True, True)
>>> implements(s,Eggs), implements(e,Spam) # e implements the Eggs protocol
(False, False)
>>> implements(s,Food), implements(e,Food) # Both implement the Food protocol
(True, True)
>>>
Implementation
Opinions expressed by DZone contributors are their own.
Comments