«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как добиться функциональности PHP`compact()` и `extract()` в Python?

Как добиться функциональности PHP`compact()` и `extract()` в Python?

Опубликовано 6 ноября 2024 г.
Просматривать:980

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

Python Эквиваленты PHP Compact() и Extract()

В PHP функции Compact() и Extract() служат практическим целям для создания хэш-таблиц и обновления локальных переменных соответственно. Python предлагает аналогичную функциональность, хотя он придерживается различных принципов.

Реализация Compact() в Python

Хотя в Python это не строго рекомендуется, можно реализовать Compact() -подобная функция выглядит следующим образом:

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

Эта функция анализирует локальные и глобальные переменные вызывающей стороны, чтобы создать словарь с указанными значениями переменных.

Подход Python к извлечению функциональности

Ранее можно было реализовать эквивалент Extract() в Python, но этот метод больше не поддерживается. Это отражает предпочтение Python к явному назначению переменных вместо динамического обновления локальных переменных.

Альтернативные подходы

Если необходимость в функциях типа Compact() или Extract() сохраняется , подумайте, соответствует ли ваш подход принципам ясности и ясности Pythonic. Альтернативы, такие как прямой доступ к переменным или использование структур данных, таких как словари, могут быть более подходящими в Python.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3