Dictionary class

This page explains the Dictionary class.

Before reading on, maybe it is helpful to read the following page:

What is the Dictionary?

The Dictionary class is the apysc dictionary class. It behaves like the Python built-in dict value.

Constructor method

The Dictionary class constructor method requires a Python built-in dict or Dictionary value:

import apysc as ap

ap.Stage()
dict_1: ap.Dictionary = ap.Dictionary({"a": 10})
assert dict_1 == {"a": 10}

dict_2: ap.Dictionary = ap.Dictionary(dict_1)
assert dict_1 == dict_2

Value setter interface

A Dictionary value can be updated by indexing, like the Python built-in dict value:

import apysc as ap

ap.Stage()
dict_1: ap.Dictionary = ap.Dictionary({"a": 10})
dict_1["a"] = 20
assert dict_1 == {"a": 20}

Value getter interface

A Dictionary value also can be retrieved by indexing:

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
dict_1: ap.Dictionary = ap.Dictionary({"a": int_1})
int_2: ap.Int = dict_1["a"]
assert isinstance(int_2, ap.Int)
assert int_2 == 10

Notes of the getter interface

If a Dictionary value doesn’t have the specified key, a retrieved value type becomes the AnyValue type. This behavior occasionally is helpful when a Dictionary value is updated dynamically (e.g., updating by the JavaScript event handler).

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
dict_1: ap.Dictionary = ap.Dictionary({"a": int_1})
retrieved_val: ap.AnyValue = dict_1["b"]
assert isinstance(retrieved_val, ap.AnyValue)

Value deletion interface

A Dictionary value can be deleted by the del statement, as follows:

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
dict_1: ap.Dictionary = ap.Dictionary({"a": int_1})
del dict_1["a"]
assert dict_1 == {}

Dictionary class constructor API

Note: the document build script generates and updates this API document section automatically. Maybe this section is duplicated compared with previous sections.

[Interface signature] __init__(self, value: Union[Dict[~_Key, ~_Value], ForwardRef('Dictionary')], *, variable_name_suffix: str = '', skip_init_substitution_expression_appending: bool = False) -> None


[Interface summary]

Dictionary class for the apysc library.


[Parameters]

  • value: dict or Dictionary

    • Initial dictionary value.

  • variable_name_suffix: str, default “”

    • A JavaScript variable name suffix string. This setting is sometimes useful for JavaScript debugging.

  • skip_init_substitution_expression_appending: bool, default False

    • A boolean indicates whether to skip an initial substitution expression or not. This class uses this option internally.


[Examples]

>>> import apysc as ap
>>> _ = ap.Stage()
>>> dictionary: ap.Dictionary = ap.Dictionary({"a": 10})
>>> dictionary
Dictionary({'a': 10})

>>> dictionary["a"]
10

>>> dictionary["b"] = 20
>>> dictionary["b"]
20

[References]

value attribute API

Note: the document build script generates and updates this API document section automatically. Maybe this section is duplicated compared with previous sections.

[Interface summary]

Get a current dict value.


[Returns]

  • value: dict

    • Current dict value.


[Examples]

>>> import apysc as ap
>>> _ = ap.Stage()
>>> dictionary: ap.Dictionary = ap.Dictionary({})
>>> dictionary.value = {"a": 10}
>>> dictionary.value
{'a': 10}

[References]