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

Barbara Streisand
Release: 2024-10-27 04:31:29
Original
858 people have browsed it

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

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

In PHP, the compact() and extract() functions serve practical purposes for creating hashtables and updating local variables, respectively. Python offers similar functionality, although it adheres to distinct principles.

Python's Implementation of compact()

While not strictly recommended in Python, one can implement a compact()-like function as follows:

<code class="python">import inspect

def compact(*names):
    caller = inspect.stack()[1][0]
    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

This function introspects the caller's local and global variables to create a dictionary with specified variable values.

Python's Approach to Extract Functionality

Previously, it was possible to implement a Python equivalent of extract(), but this method is no longer supported. This reflects Python's preference for explicit variable assignment instead of dynamically updating local variables.

Alternative Approaches

If the need for compact() or extract()-like functions persists, consider whether your approach aligns with Pythonic principles of clarity and explicitness. Alternatives such as accessing variables directly or using data structures like dictionaries may be more appropriate in Python.

The above is the detailed content of How to Achieve the Functionality of PHP\'s `compact()` and `extract()` 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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!