hol*_*lms 15 python variables extract
我曾试图在这里问过一次问题,但没有人理解我想问的问题.所以我在PHP中找到了一些例子.
// $_POST = array('address' => '123', 'name' => 'John Doe');
extract($_POST);
echo $address;
echo $name
Run Code Online (Sandbox Code Playgroud)
在PYTHON中是否有类似extract()的函数?????
字典也一样:
mydict = {'raw':'data', 'code': 500}
// some magic to extract raw and code as vars
print raw
Run Code Online (Sandbox Code Playgroud)
ps为什么我要这样做:当你在类方法时,当string是self.data ['raw'] ['code']时,很难在join()和format()中使用字符串进行6次操作.假设它在这里的字典中是dict)
Fré*_*idi 25
您可以使用locals()函数访问本地符号表并更新该表:
>>> mydict = {'raw': 'data', 'code': 500}
>>> locals().update(mydict)
>>> raw
'data'
>>> code
500
Run Code Online (Sandbox Code Playgroud)
但是,通过这种方式修改符号表是非常不寻常的,而且可能不是可行的方法.也许您需要更改设计,以便可以使用mydict
字典而不是实际变量.
cyb*_*ast 10
可怕的比赛迟到了,但我需要这个,我的解决方案是:
mydict = {'raw':'data', 'code': 500}
raw, code = [mydict.get(k) for k in ['raw','code']]
Run Code Online (Sandbox Code Playgroud)
这样它就是明确的阅读,并且没有潜在的本地化()(这是我宁愿避免的魔法).
好的,php 兄弟,这是一个坏消息,python 无法从空间之外创建变量...就像 php 可以: ${$var} 。使用 local() 是一个非常糟糕的主意,因为你会在调试时遇到很多问题,并且那里已经定义了一些本地变量..所以这真的很糟糕......
您不能像 php 那样以编程方式创建它。我认为这就是所谓的非显式性,这是 Python 的一个通用原则:你总是知道变量名。这种东西在某些情况下只是自杀,你需要手动编写大量的变量...主要是我因为 XML 解析之类的事情而感到不高兴,但似乎有一些方法如何将 python 字典转换为类,我昨天被告知这一点,但仍然没有检查它是如何工作的(类似这里)