Python-如何使用点“” 访问字典成员?
你可以使用我刚刚制作的此类来做。通过此类,你可以Map像其他字典(包括json序列化)一样使用该对象,也可以使用点符号。希望对你有所帮助:
class Map(dict): ''' Example: m = Map({’first_name’: ’Eduardo’}, last_name=’Pool’, age=24, sports=[’Soccer’]) ''' def __init__(self, *args, **kwargs):super(Map, self).__init__(*args, **kwargs)for arg in args: if isinstance(arg, dict):for k, v in arg.iteritems(): self[k] = vif kwargs: for k, v in kwargs.iteritems():self[k] = v def __getattr__(self, attr):return self.get(attr) def __setattr__(self, key, value):self.__setitem__(key, value) def __setitem__(self, key, value):super(Map, self).__setitem__(key, value)self.__dict__.update({key: value}) def __delattr__(self, item):self.__delitem__(item) def __delitem__(self, key):super(Map, self).__delitem__(key)del self.__dict__[key]
用法示例:
m = Map({’first_name’: ’Eduardo’}, last_name=’Pool’, age=24, sports=[’Soccer’])# Add new keym.new_key = ’Hello World!’# Orm[’new_key’] = ’Hello World!’print m.new_keyprint m[’new_key’]# Update valuesm.new_key = ’Yay!’# Orm[’new_key’] = ’Yay!’# Delete keydel m.new_key# Ordel m[’new_key’]
我一直将其保存在util文件中。你也可以在自己的类中将其用作混合。
class dotdict(dict): '''dot.notation access to dictionary attributes''' __getattr__ = dict.get __setattr__ = dict.__setitem__ __delattr__ = dict.__delitem__mydict = {’val’:’it works’}nested_dict = {’val’:’nested works too’}mydict = dotdict(mydict)mydict.val# ’it works’mydict.nested = dotdict(nested_dict)mydict.nested.val# ’nested works too’解决方法
如何通过点“。”访问Python词典成员?
例如,mydict[’val’]我想写而不是写mydict.val。
我也想以这种方式访问嵌套的字典。例如
mydict.mydict2.val
将指
mydict = { ’mydict2’: { ’val’: ... } }
相关文章:
1. PHP设计模式之迭代器模式浅析2. JXTA Java标准版本 2.3.7 发布3. JS实现手写 forEach算法示例4. vue学习笔记之slot插槽用法实例分析5. ASP.NET MVC使用正则表达式验证手机号码6. Java之InputStreamReader类的实现7. 用css截取字符的几种方法详解(css排版隐藏溢出文本)8. python b站视频下载的五种版本9. Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)10. Vue axios与Go Frame后端框架的Options请求跨域问题详解

网公网安备