gpt4 book ai didi

python - 从 Python 字典键创建变量

转载 作者:行者123 更新时间:2023-11-28 22:03:04 24 4
gpt4 key购买 nike

我有一个用于 url 及其 header 的容器类,资源:

class Resource(object):
def __init__(self, url, headers):
self.url = url
self.content-length = headers['content-length']
self.content-type = headers['content-type']

# etc....

__init__ 方法的 headers 参数需要一个从 urllib2.urlopen() 的 getinfo() 方法返回的字典。我认为这将是一种更具可读性的打包资源 URL 和 header 的方式。一遍又一遍地输入 self.someheader = headers['someheader'] 让我想知道是否有某种方法可以像这样从字典键自动创建变量。这可能吗?

最佳答案

Python 标识符中不能有 - 符号!所以我们可以在keys中用_代替。
将键更改为小写使它们看起来像传统的变量名,而且非常重要的是,消除了大写/小写的混淆(因为 header 通常与大写键一起发送)。

for k, v in headers.items():
setattr(self, k.lower().replace('-', '_'), v)

如果您使用的是 Python 2,iteritems 在这里更好,因为它不会创建新的项目列表,而只是让您迭代它们,而 Python 3 默认会这样做。

将这些 key 存储在“私有(private)”dict 中可能是个好主意(例如 self._headers)。然后您可以使用 __getattr__ 更好地控制流程和 __setattr__ ,例如,在尝试设置无效键时会引发异常。

关于python - 从 Python 字典键创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com