什么是Dropbox API(v2)联盟标签?

时间:2018-03-19 18:32:27

标签: python-2.7 dropbox-api

在开始使用Python SDK开发Dropbox应用程序时,我在概念上绊倒the AccessLevel documentation calls a union tag。 (这个概念超出了AccessLevel类,但这似乎是一个很好的例子。)

我试图理解为什么_tag属性基本上只供内部使用。为什么,如果我想知道某个用户是否拥有编辑,所有者或查看者权限 - 并且它只能是其中之一 - 我似乎应该调用is_owner()is_editor(),和is_viewer()方法,直到我收到True回复。

我错过了什么?为什么只访问_tag属性并采用我的快乐方式不是一个好主意?

1 个答案:

答案 0 :(得分:0)

API 文档将 .tag 定义为:

<块引用>

对象中的 .tag 字段标识结构的子类型或联合的选定成员。

Tagged union 似乎是一个通用概念,而不是 Dropbox 特定的概念:

<块引用>

在计算机科学中,标记联合...是一种数据结构,用于保存一个值,该值可以采用多种不同但固定的类型

维基百科进一步阐明了这种适用性:

<块引用>

任何时候只能使用其中一种类型,并且标签字段明确指示使用的是哪一种。这对于定义递归数据类型至关重要……需要区分多节点子树和叶子。

Dropbox API 端点的一个很好的例子是 list_folder,其中 return 可以是文件或文件夹,即 .tag 可以采用 filefolder 的值。< /p>

我相信这对于将返回的文件/文件夹解析为类的强类型代码很有价值。