ema or value object.

|ASN.1| class is based on :class:`~pyasn1.type.base.ConstructedAsn1Type`,
its objects are mutable and duck-type Python :class:`dict` objects.

Keyword Args
------------
componentType: :py:class:`~pyasn1.type.namedtype.NamedType`
    Object holding named ASN.1 types allowed within this collection

tagSet: :py:class:`~pyasn1.type.tag.TagSet`
    Object representing non-default ASN.1 tag(s)

subtypeSpec: :py:class:`~pyasn1.type.constraint.ConstraintsIntersection`
    Object representing non-default ASN.1 subtype constraint(s).  Constraints
    verification for |ASN.1| type can only occur on explicit
    `.isInconsistent` call.

Examples
--------

.. code-block:: python

    class Description(Sequence):  #  Set is similar
        '''
        ASN.1 specification:

        Description ::= SEQUENCE {
            surname    IA5String,
            first-name IA5String OPTIONAL,
            age        INTEGER DEFAULT 40
        }
        '''
        componentType = NamedTypes(
            NamedType('surname', IA5String()),
            OptionalNamedType('first-name', IA5String()),
            DefaultedNamedType('age', Integer(40))
        )

    descr = Description()
    descr['surname'] = 'Smith'
    descr['first-name'] = 'John'
c