ホームページ  >  記事  >  バックエンド開発  >  PHP の Compact() および extract() 機能を Python で複製するにはどうすればよいですか?

PHP の Compact() および extract() 機能を Python で複製するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 19:44:02480ブラウズ

 How to Replicate PHP's compact() and extract() Functionality in Python?

Python の PHP の Compact() および Extract() に相当する関数

PHP の Compact() 関数は、指定されたシンボル テーブルに対応する値でハッシュテーブルをアセンブルします名前を付け、extract() はこのプロセスを逆にします。 Python は locals()、globals()、vars() を提供しますが、これらの値の一部を分離するための組み込みメカニズムがありません。

Compact() の実装

必要に応じて、Python で Compact() と同等の関数を次のように実装できます。

<code class="python">import inspect

def compact(*names):
    caller = inspect.stack()[1][0] # caller of compact()
    vars = {}
    for n in names:
        if n in caller.f_locals:
            vars[n] = caller.f_locals[n]
        elif n in caller.f_globals:
            vars[n] = caller.f_globals[n]
    return vars</code>

Python での Extract()

抽出を作成しようとしていますPython の () 関数はお勧めできません。以前の Python インタープリターでは回避策が可能でしたが、最新のバージョンでは機能しなくなりました。

Python の観点

一般的に、compact() と extract() の使用は推奨されません。 Python は、明示性、単純性、明確さという Python の原則に反しているためです。ただし、これらの関数は、デバッグ、事後分析、または動的変数の作成などの特殊な用途に使用できる場合があります。

以上がPHP の Compact() および extract() 機能を Python で複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。