在开始使用Python SDK开发Dropbox应用程序时,我在概念上绊倒the AccessLevel documentation calls a union tag。 (这个概念超出了AccessLevel类,但这似乎是一个很好的例子。)
我试图理解为什么_tag
属性基本上只供内部使用。为什么,如果我想知道某个用户是否拥有编辑,所有者或查看者权限 - 并且它只能是其中之一 - 我似乎应该调用is_owner()
,is_editor()
,和is_viewer()
方法,直到我收到True
回复。
我错过了什么?为什么只访问_tag
属性并采用我的快乐方式不是一个好主意?
答案 0 :(得分:0)
API 文档将 .tag
定义为:
对象中的 .tag 字段标识结构的子类型或联合的选定成员。
Tagged union 似乎是一个通用概念,而不是 Dropbox 特定的概念:
<块引用>在计算机科学中,标记联合...是一种数据结构,用于保存一个值,该值可以采用多种不同但固定的类型
维基百科进一步阐明了这种适用性:
<块引用>任何时候只能使用其中一种类型,并且标签字段明确指示使用的是哪一种。这对于定义递归数据类型至关重要……需要区分多节点子树和叶子。
Dropbox API 端点的一个很好的例子是 list_folder
,其中 return 可以是文件或文件夹,即 .tag
可以采用 file
或 folder
的值。< /p>
我相信这对于将返回的文件/文件夹解析为类的强类型代码很有价值。