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

For クラス

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

このページを読み進める前に以下のページを事前に確認しておくと役に立つかもしれません(apyscではForクラスを各データ型のクラスと同じ理由で使用しています)。

For クラスの概要

Forクラスはapyscのループ制御用のクラスです。このクラスはPythonのビルトインのforのキーワードのように動作します。

基本的な使い方

Forクラスはwithステートメントと一緒に使用する必要があります。asのキーワードの値はInt型のインデックス(iの変数)もしくはString型のキーになります。

以下のコード例では3つの四角をwith Forのブロック内で描画しています:

import apysc as ap

ap.Stage(
    stage_width=350, stage_height=150, background_color="#333", stage_elem_id="stage"
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color="#0af")

arr: ap.Array[int] = ap.Array(range(3))
i: ap.Int
with ap.For(arr) as i:
    sprite.graphics.draw_rect(x=i * 100 + 50, y=50, width=50, height=50)

ap.save_overall_html(dest_dir_path="for_basic_usage/")

Forクラスの第一引数はArrayもしくはDictionaryクラスの値を受け付けます。もしもDictionaryの値を指定した場合、asのキーワードの値はIntの代わりにStringの値になります。

import apysc as ap

ap.Stage(
    stage_width=250, stage_height=150, background_color="#333", stage_elem_id="stage"
)
sprite: ap.Sprite = ap.Sprite()

dict_val: ap.Dictionary = ap.Dictionary(
    {"magenta": ap.String("#f0a"), "cyan": ap.String("#0af")}
)
key: ap.String
with ap.For(dict_val) as key:
    color: ap.String = dict_val[key]
    sprite.graphics.begin_fill(color=color)
    condition_1: ap.Boolean = key == "magenta"
    condition_2: ap.Boolean = key == "cyan"
    with ap.If(condition_1):
        sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
    with ap.Elif(condition_2):
        sprite.graphics.draw_rect(x=150, y=50, width=50, height=50)

ap.save_overall_html(dest_dir_path="for_basic_usage_with_dict/")

関連資料

For API

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

[インターフェイスの構造] __init__(self, arr_or_dict: Union[apysc._type.array.Array, apysc._type.dictionary.Dictionary], *, locals_: Union[Dict[str, Any], NoneType] = None, globals_: Union[Dict[str, Any], NoneType] = None) -> None


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

ループのfor文の表現を追加するためのクラスです。


[引数]

  • arr_or_dict: Array or Dictionary

    • ループで使用するためのArray もしくは Dictionary クラスのインスタンス。

  • locals_: dict or None, default None

    • 現在のスコープのローカル変数。設定する場合にはlocals()関数の値をこの引数に指定してください。もし設定された場合にはこのいんたーふぇいろはForクラスによるスコープの終わりにVariableNameMixInを継承した各変数(IntやSpriteなど)の値を元の状態に復元します。この設定はもしも変数の値をForのスコープ内で更新したくない場合などに便利な時があります。

  • globals_: dict or None, default None

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


[コードサンプル]

>>> import apysc as ap
>>> arr: ap.Array = ap.Array(range(3))
>>> with ap.For(arr) as i:
...     ap.trace("Loop index is:", i)
...