ここでは、さまざまな質問スタイルを試した、いくつかのタイトル オプションを示します。 直接的かつ集中的: * Python で PHP の Compact() および extract() に相当するもの: 同様の機能を実現するにはどうすればよいですか? ※交換中

DDD
リリース: 2024-10-27 02:37:30
オリジナル
528 人が閲覧しました

Here are a few title options, playing with different question styles:

Direct & Focused:

* Python Equivalents for PHP's compact() and extract(): How to Achieve Similar Functionality?
* Replacing PHP's compact() and extract() in Python: Best Practices a

PHP の Compact() および extract() の Python 類似物

PHP では、compact() および extract() は広く使用されている関数です。指定された値または変数を含むハッシュテーブルの作成と抽出を容易にします。このため、Python での可用性について疑問が生じています。

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>
ログイン後にコピー

extract() の実装

compact() は実装できますが、最新の Python インタープリターでは値の抽出が課題に直面しています。以前は、

<code class="python">def extract(vars):
    caller = inspect.stack()[1][0]  # caller of extract()
    for n, v in vars.items():
        caller.f_locals[n] = v   # NEVER DO THIS - not guaranteed to work</code>
ログイン後にコピー

を使用できましたが、これは確実に動作しなくなりました。

代替手段

これらの関数は、 Python では良い習慣とはみなされません。これらは、明示性、単純性、わかりやすさの原則に反しています。

  • locals() と globals() を使用して特定の変数値にアクセスするなどの代替アプローチを検討してください
  • 明示的な変数の割り当て
  • データを整理するための辞書のようなデータ構造

以上がここでは、さまざまな質問スタイルを試した、いくつかのタイトル オプションを示します。 直接的かつ集中的: * Python で PHP の Compact() および extract() に相当するもの: 同様の機能を実現するにはどうすればよいですか? ※交換中の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!