什么是Dropbox API(V2)联合标签?

人气:123 发布:2023-01-03 标签: python-2.7 dropbox-api

问题描述

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

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

我错过了什么?为什么不直接访问_tag属性,然后顺其自然呢?

推荐答案

接口文档将.tag定义为:

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

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

在计算机科学中,标记的联盟...是一种数据结构,用于保存可以呈现几种不同但固定的类型的值

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

一次只能使用一种类型,并且标记字段明确指示正在使用哪种类型。这在定义递归数据类型时至关重要...其中需要区分多节点子树和叶。

Dropbox API终结点的一个很好的例子是list_folder,其中返回可以是文件或文件夹,即filefolder

我相信这对于强类型代码很有价值,在强类型代码中,返回的文件/文件夹被分析为类。

18