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 中的良好实践。它们违背了明确、简单和可理解的原则。考虑替代方法,例如使用:
以上是以下是一些标题选项,可使用不同的问题样式: 直接且专注: * PHP 的compact() 和extract() 的Python 等效项:如何实现类似的功能? * 更换的详细内容。更多信息请关注PHP中文网其他相关文章!