首頁  >  文章  >  後端開發  >  如何在Python中實作PHP的「compact()」和「extract()」功能?

如何在Python中實作PHP的「compact()」和「extract()」功能?

Patricia Arquette
Patricia Arquette原創
2024-10-26 07:48:02758瀏覽

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

Python 的PHP Compact() 和extract() 替代品

PHP 的Compact() 和extract() 函數提供了一種操作變數值的便利方法。然而,這些函數不能直接翻譯成Python。

實作compact()

雖然沒有compact()的直接等效項,但您可以使用以下指令模擬其行為Python 的自省功能:

<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>

使用vars() 提取變數

要將字典的值提取到目前作用域,可以使用vars()函數:

<code class="python">my_dict = {"foo": "what", "bar": "ever"}
vars().update(my_dict)</code>

Pythonic 替代品

雖然Compact() 和extract() 在某些情況下可能有用,但通常認為使用更明確的方法是更好的做法在Python中。例如,您可以簡單地手動建立字典,而不是使用compact():

<code class="python">my_dict = {
    "foo": "what",
    "bar": "ever",
}</code>

至於提取變量,您可以手動將值指派給所需的變數:

<code class="python">foo = my_dict["foo"]
bar = my_dict["bar"]</code>

結論

雖然Python 沒有PHP 的Compact() 和extract() 函數的直接等效項,但有一些方法可以使用內省和更顯式的方法來實現類似的功能。需要注意的是,使用這些函數通常被認為是非 Python 的,只能在特定情況下使用。

以上是如何在Python中實作PHP的「compact()」和「extract()」功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn