fault: :class:`object`
    If set and requested component is a schema object, return the `default`
    object instead of the requested component.

instantiate: :class:`bool`
    If :obj:`True` (default), inner component will be automatically
    instantiated.
    If :obj:`False` either existing component or the :class:`NoValue`
    object will be returned.

Returns
-------
: :py:class:`~pyasn1.type.base.PyAsn1Item`
    a PyASN1 object

Examples
--------

.. code-block:: python

    # can also be Set
    class MySequence(Sequence):
        componentType = NamedTypes(
            NamedType('id', OctetString())
        )

    s = MySequence()

    # returns component #0 with `.isValue` property False
    s.getComponentByPosition(0)

    # returns None
    s.getComponentByPosition(0, default=None)

    s.clear()

    # returns noValue
    s.getComponentByPosition(0, instantiate=False)

    # sets component #0 to OctetString() ASN.1 schema
    # object and returns it
    s.getComponentByPosition(0, instantiate=True)

    # sets component #0 to ASN.1 value object
    s.setComponentByPosition(0, 'ABCD')

    # returns OctetString('ABCD') value object
    s.getComponentByPosition(0, instantiate=False)

    s.clear()

    # returns noValue
    s.getComponentByPosition(0, instantiate=False)
)