我有以下类,它返回给定kwargs作为输入的字典.
class Emp_Constant: def __init__(self,**kwargs): for key,value in kwargs.items(): setattr(self,key,value)
但是,在某些情况下,我想将字典作为此类的输入传递,并将键值作为变量进行访问.
例如,如果我的字典是{‘name’:’Tome’,’age’:’26’},那么
我想访问’Tom’,如下所示:
set = {'name': 'Tom','age':'26'} a = Emp_Constant(set) first_emp = a.NAME (where NAME is a variable that holds value of key 'name')
这有可能实现吗?
解决方法
当然,使用“double-splat”运算符将字典解压缩为关键字参数,然后使用getattr:
In [30]: class Emp_Constant: ...: def __init__(self,**kwargs): ...: for key,value in kwargs.items(): ...: setattr(self,value) ...: In [31]: data = {'name': 'Tom','age':'26'} ...: a = Emp_Constant(**data) ...: ...: NAME = 'name' ...: ...: In [32]: getattr(a,NAME) Out[32]: 'Tom'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。