import abc
import copy

class Life(object):
	__metaclass__ = abc.ABCMeta
	
	@abc.abstractmethod
	def reproduce(self):
		pass

class Bacterium(Life):
	def reproduce(self):
		return copy.deepcopy(self)

wiggly = Bacterium()

print 'The magic method mro is: {}'.format(wiggly.__class__.__mro__)
print 'The abc method mro is: {}'.format(wiggly.__class__.mro())