我想打印apple
的值1234
,但不使用Dict['apple']
,而是在Python 3中使用Dict.apple
。有办法做到这一点吗?我们可以使用任何其他数据格式,如:元组或列表。建议我如何在Python中实现这一点。
Dict = { 'apple':'1234'}
你可以,但不值得这么麻烦。
这里有一个使用内置namedtuple
类的解决方案:
from collections import namedtuple
Dict = { 'apple':'1234'}
MyTupleClass = namedtuple('MyTupleClass', Dict)
my_tuple = MyTupleClass(**Dict)
print(my_tuple.apple)
另一个分类为dict
:
class MyDict(dict):
def __getattr__(self, item):
return self.__getitem__(item)
d = MyDict({'apple': '1234'})
print(d.apple)
两者都是丑陋的&不值得降低可读性。
您可以这样做:
class CustomDict(object):
def __init__(self, d):
self.__dict__ = d
Dict = { 'apple':'1234'}
custom_dict = CustomDict(Dict)
print(custom_dict.apple)
非常感谢大家!但我也找到了答案
from dotmap import DotMap
myDict = DotMap(a:'1234')
>> myDict.a
>> 1234