如何访问与保留关键字同名的属性?

how can I access attributes that have the same name as reserved keywords?

我正在调用一个 API,它返回一个 AttributeDict,它具有许多属性,例如 tofrom

为了访问这些属性,我使用了点表示法。例如,我使用 object.to 并且效果很好。

当我尝试使用 object.from 时,出现 SyntaxError: invalid syntax 错误。我认为这是因为 from is a keyword in Python

如果是这种情况,是否可以通过点访问 from?现在,我正在使用 object["from"],它可以正常工作,但与我的其余代码不匹配。

虽然可以使用 getattr 访问此类属性:

val = getattr(ad, 'from')

这比您的 AttributeDict 支持的 ad['from'] 语法更麻烦,并且不能满足您对点分符号的需求。

目前没有使用点分符号访问此类属性的选项。只要坚持索引。它处理保留名称,带有 spaces/hyphens/etc 的名称。在它们中,以及与现有方法冲突的名称(假设合理的 AttributeDict 实现)。即使您使用 getattrgetattr(ad, 'get') 仍然可能 return AttributeDict 的 get 方法而不是 'get' 键的值。