Home > Backend Development > PHP Tutorial > How to Achieve PHP\'s `compact()` and `extract()` Functionality in Python?

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

Patricia Arquette
Release: 2024-10-26 07:48:02
Original
839 people have browsed it

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

Python's Alternatives to PHP's compact() and extract()

PHP's compact() and extract() functions offer a convenient way to manipulate variable values. However, these functions are not directly translatable to Python.

Implementing compact()

While there is no direct equivalent of compact(), you can simulate its behavior using Python's introspection features:

1

2

3

4

5

6

7

8

9

10

11

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

Copy after login

Extracting Variables with vars()

To extract the values of a dictionary into the current scope, you can use the vars() function:

1

2

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

vars().update(my_dict)</code>

Copy after login

Pythonic Alternatives

While compact() and extract() can be useful in certain situations, it's generally considered better practice to use more explicit methods in Python. For example, instead of using compact(), you could simply create a dictionary manually:

1

2

3

4

<code class="python">my_dict = {

    "foo": "what",

    "bar": "ever",

}</code>

Copy after login

As for extracting variables, you can manually assign the values to the desired variables:

1

2

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

bar = my_dict["bar"]</code>

Copy after login

Conclusion

While Python does not have direct equivalents of PHP's compact() and extract() functions, there are ways to achieve similar functionality using introspection and more explicit methods. It's important to note that using these functions is generally considered non-Pythonic and should only be employed in specific situations.

The above is the detailed content of How to Achieve PHP\'s `compact()` and `extract()` Functionality in Python?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template