相关疑难解决方法(0)

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

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对象/变量的名称

大多数人可能会说这是一个坏主意。我想使用字符串的内容作为变量的名称。我想完成可怕的事情:

s = 'x'
x = 1
Run Code Online (Sandbox Code Playgroud)

变量名x(不知何故?)来自 string 的地方s

要回答“为什么?”,假设我有一个全局默认值x,我想要在函数中覆盖的选项。但:

x = 0
def f(**kw):
    print x
f(x=1)
Run Code Online (Sandbox Code Playgroud)

打印01。如果我可以使用 kw.keys() 中的字符串重新分配x(或任何其他全局设置的变量),那么我会很高兴。

我意识到,这适用于重新分配xf

x = 0
def f(x=x):
    print x
f(x=1)
Run Code Online (Sandbox Code Playgroud)

但是我想在我的命名空间中有许多变量的情况下这样做,我可能在某个时候想要覆盖而不重写我的模块中的每个函数定义。

python string function keyword argument-passing

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

如何在python中动态创建变量名并赋值?

我想动态分配变量(矩阵名称)并分配一些值。

下面是我正在尝试的示例代码。预期输出为 mat1 和 mat2,分别包含值 1 和 1。

stri = "mat"

for i in range(1,2):  
     "_".join([stri, i])=1
Run Code Online (Sandbox Code Playgroud)

python

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