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 では良い習慣とはみなされません。これらは、明示性、単純性、わかりやすさの原則に反しています。
以上がここでは、さまざまな質問スタイルを試した、いくつかのタイトル オプションを示します。 直接的かつ集中的: * Python で PHP の Compact() および extract() に相当するもの: 同様の機能を実現するにはどうすればよいですか? ※交換中の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。