4 回答
TA贡献1831条经验 获得超10个赞
使用exec()方法。例如,假设您有一个字典,并且您希望将每个键转换为具有原始字典值的变量,则可以执行以下操作。
Python 2
>>> c = {"one": 1, "two": 2}
>>> for k,v in c.iteritems():
... exec("%s=%s" % (k,v))
>>> one
1
>>> two
2
Python 3
>>> c = {"one": 1, "two": 2}
>>> for k,v in c.items():
... exec("%s=%s" % (k,v))
>>> one
1
>>> two
2
TA贡献1876条经验 获得超7个赞
将东西填充到全局和/或本地命名空间中并不是一个好主意。使用dict是如此的一些其他语言... d['constant-key'] = value只是看起来很尴尬。Python是OO。用大师的话来说:“”“命名空间是一个很棒的主意 - 让我们做更多的事情!”“”
像这样:
>>> class Record(object):
... pass
...
>>> r = Record()
>>> r.foo = 'oof'
>>> setattr(r, 'bar', 'rab')
>>> r.foo
'oof'
>>> r.bar
'rab'
>>> names = 'id description price'.split()
>>> values = [666, 'duct tape', 3.45]
>>> s = Record()
>>> for name, value in zip(names, values):
... setattr(s, name, value)
...
>>> s.__dict__ # If you are suffering from dict withdrawal symptoms
{'price': 3.45, 'id': 666, 'description': 'duct tape'}
>>>
添加回答
举报