<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/agents/blob/v0.19.0/tf_agents/utils/object_identity.py#L140-L171) |

A mutable mapping data structure which compares using "is".

    tf_agents.utils.object_identity.ObjectIdentityDictionary()

This is necessary because we have trackable objects (_ListWrapper) which
have behavior identical to built-in Python lists (including being unhashable
and comparing based on the equality of their contents by default).

## Methods

### `clear`

    clear()

D.clear() -\> None. Remove all items from D.

### `get`

    get(
        key, default=None
    )

Retrieve the corresponding layout by the string key.

When there isn't an exact match, all the existing keys in the layout map
will be treated as a regex and map against the input key again. The
first match will be returned, based on the key insertion order. Return
None if there isn't any match found.

<br />

<br />

<br />

| Args ||
|---|---|
| `key` | the string key as the query for the layout. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| Corresponding layout based on the query. ||

<br />

### `items`

    items()

D.items() -\> a set-like object providing a view on D's items

### `keys`

    keys()

D.keys() -\> a set-like object providing a view on D's keys

### `pop`

    pop(
        key, default=<object object>
    )

D.pop(k\[,d\]) -\> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised.

### `popitem`

    popitem()

D.popitem() -\> (k, v), remove and return some (key, value) pair as a 2-tuple; but raise KeyError if D is empty.

### `setdefault`

    setdefault(
        key, default=None
    )

D.setdefault(k\[,d\]) -\> D.get(k,d), also set D\[k\]=d if k not in D

### `update`

    update(
        other, /, **kwds
    )

D.update(\[E, \]\*\*F) -\> None. Update D from mapping/iterable E and F.
If E present and has a .keys() method, does: for k in E: D\[k\] = E\[k\]
If E present and lacks .keys() method, does: for (k, v) in E: D\[k\] = v
In either case, this is followed by: for k, v in F.items(): D\[k\] = v

### `values`

    values()

D.values() -\> an object providing a view on D's values

### `__contains__`

    __contains__(
        key
    )

### `__eq__`

    __eq__(
        other
    )

Return self==value.

### `__getitem__`

[View source](https://github.com/tensorflow/agents/blob/v0.19.0/tf_agents/utils/object_identity.py#L154-L155)

    __getitem__(
        key
    )

### `__iter__`

[View source](https://github.com/tensorflow/agents/blob/v0.19.0/tf_agents/utils/object_identity.py#L166-L168)

    __iter__()

### `__len__`

[View source](https://github.com/tensorflow/agents/blob/v0.19.0/tf_agents/utils/object_identity.py#L163-L164)

    __len__()