ホームページ > バックエンド開発 > Python チュートリアル > `locals()` を使用する以外に、Python でローカル変数を動的に設定するにはどうすればよいですか?

`locals()` を使用する以外に、Python でローカル変数を動的に設定するにはどうすればよいですか?

DDD
リリース: 2024-12-05 06:07:12
オリジナル
730 人が閲覧しました

How Can I Dynamically Set Local Variables in Python Beyond Using `locals()`?

動的変数設定: locals() を超えて

Python では、変数名自体が動的である場合、ローカル変数を動的に設定することが困難になります。一般的な想定に反して、関数内でローカル変数を設定する場合、locals() ディクショナリへの変更は必ずしも信頼できるとは限りません。

代替アプローチ:

locals() に依存する代わりに)、次のことを考慮してください代替案:

  • 辞書の使用:
    辞書を作成し、動的変数名をキーに割り当てます。辞書を通じて値にアクセスします。

    d = {}
    d['xyz'] = 42
    print(d['xyz'])  # Prints 42
    ログイン後にコピー
  • クラス属性の使用:
    クラスを定義し、動的変数名を属性として設定します。クラス インスタンスを通じて値にアクセスします。

    class C:
        pass
    
    obj = C()
    setattr(obj, 'xyz', 42)
    print(obj.xyz)  # Prints 42
    ログイン後にコピー

Locals() の動作について:

一方、locals() は関数内で動作する可能性があります。コンパイラを最適化するには、locals() を直接変更すると予期しない結果が生じる可能性があることに注意することが重要です。返された辞書への割り当ては一時的であり、次の locals() 呼び出しで上書きされます。

IronPython の仕様:

IronPython では、locals() の動作が異なります。別の名前で locals() を呼び出すと、その名前がバインドされていたスコープのローカル変数にバインドされます。ただし、このバインドされた名前を通じて関数ローカルにアクセスすることはできません。

以上が`locals()` を使用する以外に、Python でローカル変数を動的に設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート