根据键值将Python字典转换为变量赋值
基本上,我想用一个
字典,比如 { "a":"bar", "b":"blah", "c":"abc", "d":"nada" }
来设置一些变量(在一个对象里),这些变量的名字和字典里的键是一样的。
class Foo(object)
{
self.a = ""
self.b = ""
self.c = ""
}
所以最后的结果是 self.a = "bar",self.b = "blah",等等……(而键 "d" 会被忽略)
有什么想法吗?
3 个回答
2
另一个选择是使用参数解包:
class Foo(object):
def __init__(self, a='', b='', c='', **kwargs)
self.a = a
self.b = b
self.c = c
d = { "a":"bar", "b":"blah", "c":"abc", "d":"nada" }
f = Foo(**d)
3
这段代码是用来处理一些特定的任务的。它可能涉及到数据的输入、处理和输出。具体来说,代码块中的内容会根据不同的条件执行不同的操作。你可以把它想象成一个厨师,根据食材的不同选择不同的做法。每当有新的食材(数据)进来,厨师(代码)就会决定用什么方法来处理它。
在编程中,代码块通常是一个功能的集合,能够完成某个特定的工作。理解这些代码块的逻辑,就像理解一个食谱,能帮助你更好地掌握编程的基本概念。
class Foo(object):
a, b, c = "", "", ""
foo = Foo()
_dict = { "a":"bar", "b":"blah", "c":"abc", "d":"nada" }
for k,v in _dict.iteritems():
if hasattr(foo, k):
setattr(foo, k, v)
5
把你的 class
语句转换成 Python 代码,
class Foo(object):
def __init__(self):
self.a = self.b = self.c = ''
def fromdict(self, d):
for k in d:
if hasattr(self, k):
setattr(self, k, d[k])
看起来 fromdict
方法正好具备你需要的功能。