#NEWLINE# def alsoProvides( object , * interfaces ) : #NEWLINE# #INDENT# 'Declare interfaces declared directly for an object\n\n    The arguments after the object are one or more interfaces or interface\n    specifications (``IDeclaration`` objects).\n\n    The interfaces given (including the interfaces in the specifications) are\n    added to the interfaces previously declared for the object.\n\n    Consider the following example:\n\n      >>> from zope.interface import Interface\n      >>> class I1(Interface): pass\n      ...\n      >>> class I2(Interface): pass\n      ...\n      >>> class IA1(Interface): pass\n      ...\n      >>> class IA2(Interface): pass\n      ...\n      >>> class IB(Interface): pass\n      ...\n      >>> class IC(Interface): pass\n      ...\n      >>> class A(object):\n      ...     implements(IA1, IA2)\n      >>> class B(object):\n      ...     implements(IB)\n\n      >>> class C(A, B):\n      ...    implements(IC)\n\n      >>> ob = C()\n      >>> directlyProvides(ob, I1)\n      >>> int(I1 in providedBy(ob))\n      1\n      >>> int(I2 in providedBy(ob))\n      0\n      >>> int(IA1 in providedBy(ob))\n      1\n      >>> int(IA2 in providedBy(ob))\n      1\n      >>> int(IB in providedBy(ob))\n      1\n      >>> int(IC in providedBy(ob))\n      1\n\n      >>> alsoProvides(ob, I2)\n      >>> int(I1 in providedBy(ob))\n      1\n      >>> int(I2 in providedBy(ob))\n      1\n      >>> int(IA1 in providedBy(ob))\n      1\n      >>> int(IA2 in providedBy(ob))\n      1\n      >>> int(IB in providedBy(ob))\n      1\n      >>> int(IC in providedBy(ob))\n      1\n\n    The object, ``ob`` provides ``I1``, ``I2``, and whatever interfaces\n    instances have been declared for instances of ``C``. Notice that the\n    alsoProvides just extends the provided interfaces.\n    ' #NEWLINE# directlyProvides ( object , directlyProvidedBy ( object ) , * interfaces )