相关疑难解决方法(0)

在Python中从字典创建或分配变量

我曾试图在这里问过一次问题,但没有人理解我想问的问题.所以我在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)

python variables extract

15
推荐指数
3
解决办法
2万
查看次数

有什么方法可以修改本地词典吗?

locals是一个内置函数,返回本地值的字典.文件说:

警告

不应修改此词典的内容; 更改可能不会影响解释器使用的局部变量的值.

不幸的是,exec在Python 3.0中也有同样的问题.这有什么办法吗?

用例

考虑:

@depends("a", "b", "c", "d", "e", "f")
def test():
    put_into_locals(test.dependencies)
Run Code Online (Sandbox Code Playgroud)

depends将其参数中提供的字符串存储在列表中test.dependences.这些字符串是字典中的键d.我希望能够编写,put_into_locals以便我们可以将值拉出d并将它们放入本地.这可能吗?

python local-variables

14
推荐指数
3
解决办法
1万
查看次数

为什么在python中修改locals是个坏主意?

与此相关的答复这里.当地人的文件在这里.

文档提到字典不应该改变,不确定它意味着什么但是locals()适用于数据不会改变的实验室报告,例如在测量中?

python locals

5
推荐指数
3
解决办法
1897
查看次数

How to convert this Python 2.7 code to Python 3?

The following code works in Python 2.7, to dynamically inject local variables into a function scope:

myvars = {"var": 123}

def func():
    exec("")
    locals().update(myvars)
    print(var)

func()
# assert "var" not in globals()
Run Code Online (Sandbox Code Playgroud)

这有点微妙,但是exec语句的存在向编译器指示可以修改本地名称空间。在参考实现中,它将把名称“ locals”的查找从LOAD_GLOBAL op转换为LOAD_NAME op,从而允许添加到本地名称空间。

在Python 3中,它exec变成了函数而不是语句,并且该locals()调用返回了名称空间的副本,其中的修改无效。

您如何在Python 3中重新创建想法,以便在函数内部动态创建局部变量?还是仅在Python 2.x中才有“功能”?

注意:该代码不得在外部范围内绑定名称。

python cpython local-variables python-2.7 python-3.x

5
推荐指数
1
解决办法
91
查看次数