gpt4 book ai didi

python - 有没有 `vars(object)`的逆

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:29 25 4
gpt4 key购买 nike

内置的 vars(obj) 返回一个字典,其中的键/值反射(reflect)了 obj 的属性。这个函数有反函数吗? IE。一个接受字典并返回对象的函数。

我想出了两种方法,但对于阅读它的人来说,这两种方法都不明显。第一个版本涉及将新字典分配给 self.__dict__:

class _Tmp(object):
def __init__(self, dct):
self.__dict__ = dct
obj = _Tmp({'hello': 'world'})
assert obj.hello == 'world'

而第二个版本使用了对 type 内置函数的非标准调用:

obj = type('', (), {'hello': 'world'})
assert obj.hello == 'world'

有没有更简单/更易读的方法?

最佳答案

在 Python 3.3 及更高版本中,您可以使用 types.SimpleNamespace :

from types import SimpleNamespace

obj = SimpleNamespace(**{'hello': 'world'})

关于python - 有没有 `vars(object)`的逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668891/

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