相关疑难解决方法(0)

Python:将dict中的变量加载到命名空间中

我想在函数外部使用函数中定义的一堆局部变量.所以我传递x=locals()了返回值.

如何将该字典中定义的所有变量加载到函数外部的命名空间中,这样x['variable']我就可以简单地使用,而不是使用值来访问该值variable.

python variables scope locals

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

如何创建Python命名空间(argparse.parse_args值)?

为了交互式地测试我的python脚本,我想创建一个Namespace对象,类似于返回的对象argparse.parse_args().显而易见的方式,

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.parse_args()
Namespace()
>>> parser.parse_args("-a")
usage: [-h]
: error: unrecognized arguments: - a

Process Python exited abnormally with code 2
Run Code Online (Sandbox Code Playgroud)

可能导致Python repl退出(如上所述)一个愚蠢的错误.

那么,使用给定属性集创建Python命名空间的最简单方法是什么?

例如,我可以动态创建dict(dict([("a",1),("b","c")]))但我不能将其用作Namespace:

AttributeError: 'dict' object has no attribute 'a'
Run Code Online (Sandbox Code Playgroud)

python namespaces argparse

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

在Python中将有限的dict值解压缩为局部变量的优雅方法

我正在寻找一种优雅的方法来从Python字典中提取一些值到本地值.

与此相当的东西,但对于更长的值列表更清晰,以及更长的键/变量名称:

d = { 'foo': 1, 'bar': 2, 'extra': 3 }
foo, bar = d['foo'], d['bar']
Run Code Online (Sandbox Code Playgroud)

我原本希望得到以下内容:

foo, bar = d.get_tuple('foo', 'bar')
Run Code Online (Sandbox Code Playgroud)

我可以轻松编写一个不错的函数:

def get_selected_values(d, *args):
    return [d[arg] for arg in args]

foo, bar = get_selected_values(d, 'foo', 'bar')
Run Code Online (Sandbox Code Playgroud)

但我一直怀疑还有一些其他的内置方式.

python

12
推荐指数
2
解决办法
4870
查看次数

如何传递我的本地人并直接从另一个函数访问变量?

假设我有这个:


def a(dict):
  locals().update(dict)
  print size

def b():
  size = 20
  f(locals())
Run Code Online (Sandbox Code Playgroud)

如何size直接从a函数中访问变量我该怎么办?我知道 :


size = dict["size"]
Run Code Online (Sandbox Code Playgroud)

但我认为应该有更直接的方式.我尝试使用locals().update(dict)但它没有用.有更好的方式吗?

python variables language-features function

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