属性-访问有序字典
atdict的Python项目详细描述
自动听写
属性访问顺序字典
atdict是一个属性访问顺序字典。你可以用钥匙
名称作为访问键的字典值的属性,
例如,o.key_name
而不是o['key_name']
。只有最低限度
实现了一组方法,以尽量减少命名的机会
冲突。
atdict最初作为类在2017年开发
^{
要求
- python 2.7、3.6或3.7
安装
您可以使用pip
安装。
$ pip install -U atdict
如何使用
导入atdict
从包中导入atdict
。
fromatdictimportatdict
初始化atdict
可以使用任何可以初始化的参数初始化atdict
^{
例如:
o1=atdict([('foo',40),('bar','ham')])print(o1)
它会打印出来。
atdict(foo=40,bar='ham')
一个atdict
也可以用另一个atdict
初始化。
o2 = atdict(o1)
print(o2)
使用o1
内容的(浅层)副本初始化o2
。
atdict(foo=40, bar='ham')
访问值
您可以使用密钥名作为atdict
的属性。
print(o1.foo)
这将打印键foo
的值,即40
。
40
修改值
若要修改值,可以为该属性指定新值。
o1.foo=50print(o1)
atdict(foo=50, bar='ham')
键foo
的值从40
更改为50
。
添加一个键
若要添加键,还可以为该属性指定值
o1.baz='eggs'print(o1)
atdict(foo=50, bar='ham', baz='eggs')
删除键
del
删除密钥。
delo1.barprint(o1)
atdict(foo=50, baz='eggs')
复制和深度复制
如果atdict
使用另一个
atdict
。但是,这将是一个shallow副本。
l=[1,2]o1=atdict([('foo',l)])o2=atdict(o1)print(o2.fooiso1.foo)
True
要制作deep副本,可以使用copy.deepcopy()
。
importcopyl=[1,2]o1=atdict([('foo',l)])o2=copy.deepcopy(o1)print(o2)
atdict(foo=[1, 2])
o2.foo
和o1.foo
不是同一个对象。
print(o2.fooiso1.foo)
False
腌菜
只要所有值都是可选取的,atdict
就是可选取的。
importpickleo1=atdict([('foo',40),('bar','ham')])p1=pickle.dumps(o1)o2=pickle.loads(p1)print(o2)
atdict(foo=40, bar='ham')
许可证
- atdict是根据bsd许可证授权的。