※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。

ForDictKeys クラス

このページではForDictKeysクラスについて説明します。

事前に以下のページを読んでおくと役立つかもしれません(apyscライブラリではこのクラスを各データ型と同じように扱っています)。

クラス概要

ForDictKeysクラスはfor文でのループのためのクラスです。

このインターフェイスはループ内でDictionaryのキーを返却します。

基本的な使い方

このクラスはwithステートメントと共に使う必要があります。

asキーワードの値はDictionaryのキーとなります。

また、このクラスはDictionaryのキーの型を指定するためのdict_key_type引数の指定が必要になります。

この型の指定はStringIntNumberBooleanといったapyscの型のみ受け付けます。

import apysc as ap

ap.Stage(
    stage_width=0,
    stage_height=0,
    background_color=ap.Color("#333"),
    stage_elem_id="stage",
)

dict_: ap.Dictionary[ap.String, int] = ap.Dictionary(
    {
        ap.String("apple"): 120,
        ap.String("orange"): 200,
    }
)
keys: ap.Array[ap.String] = ap.Array([])
with ap.ForDictKeys(dict_=dict_, dict_key_type=ap.String) as key:
    keys.append(key)
ap.assert_arrays_equal(
    keys,
    ["apple", "orange"],
)

ap.save_overall_html(dest_dir_path="for_dict_keys_basic_usage_1/")

関連資料

ForDictKeys API

特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。

[インターフェイスの構造] __init__(self, dict_: apysc._type.dictionary.Dictionary[~_DictKey, typing.Any], dict_key_type: Type[~_DictKey], *, locals_: Union[Dict[str, Any], NoneType] = None, globals_: Union[Dict[str, Any], NoneType] = None, variable_name_suffix: str = '') -> None


[インターフェイス概要]

ap.Dictionaryの各キーのためのループ用のクラスです。


[引数]

  • dict_: Dictionary[_DictKey, Any]

    • イテレーションで扱うための辞書。

  • dict_key_type: Type[_DictKey]

    • 辞書のキーの型。このインターフェイスはStringIntNumberBooleanといったハッシュ化可能な型を受け付けます。

  • locals_: Optional[Dict[str, Any]], optional

    • 現在のスコープの各ローカル変数。この引数にはlocals()関数の返却値を設定してください。もしこの引数が指定された場合、このインターフェイスはローカルスコープのVariableNameMixInの各変数(例 : IntやSpriteなど)の値をwithステートメントの最後で復元します。この設定は各変数を更新したくない場合等に役立ちます。

  • globals_: Optional[Dict[str, Any]], optional

    • 現在のスコープの各グローバル変数。設定する場合にはglobal()関数の値をこの引数に指定してください。この設定はlocals_引数と同じように動作します。

  • variable_name_suffix: str, optional

    • JavaScript上の変数のサフィックスの設定です。この設定はJavaScriptのデバッグ時に役立つことがあります。


[コードサンプル]

>>> import apysc as ap
>>> dict_: ap.Dictionary[ap.String, ap.Boolean] = ap.Dictionary(
...     {
...         ap.String("apple"): ap.Boolean(True),
...         ap.String("orange"): ap.Boolean(False),
...     }
... )
>>> keys: ap.Array[ap.String] = ap.Array([])
>>> with ap.ForDictKeys(dict_=dict_, dict_key_type=ap.String) as key:
...     keys.append(key)
...
>>> ap.assert_arrays_equal(
...     keys,
...     ["apple", "orange"],
... )