属性-访问有序字典

atdict的Python项目详细描述


PyPI versionDOIBuild Statuscodecov

自动听写

属性访问顺序字典


atdict是一个属性访问顺序字典。你可以用钥匙 名称作为访问键的字典值的属性, 例如,o.key_name而不是o['key_name']。只有最低限度 实现了一组方法,以尽量减少命名的机会 冲突。

atdict最初作为类在2017年开发 ^{}, 在scribblers中,其中 在中表示event objectsalphatwirl。是的 2019年作为独立软件包发布,名为atdict



要求

  • 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.fooo1.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许可证授权的。

联系人

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
部署在kubernetes上时,微服务中服务间通信中的java连接超时问题   java Nway合并对2G字符串文件进行排序   java如何使用FlexJson按特定顺序序列化对象和属性   如何在java布尔方法中导入文本文件   swing需要帮助在我的Java GUI中实现用户输入的侦听器   java如何读取枚举中Spring Messagesource的内容?   每个Ajaxcall上(之前和之后)的java Javascript   java compareTo(Comparable)方法对于Comparable类型未定义   带换行符的java Bash输入重定向   使用Spring授权标记检查用户是否登录时发生java错误?   使用大尺寸(100000)数组执行快速排序时出现Java StackOverflower错误   java forEach迭代器标记   Java ClassNotFound异常,Maven依赖项作为JAR   java将HQL转换为SQL查询   java正在将片段列表发送到FragmentPagerAdapter   java onActivityResult应该调用super。onActivityResult   java如果我导入一个超类,我也需要导入它的子类吗?   java是否可以通过openid协议对aadhar进行身份验证