如何访问与保留关键字同名的属性?
how can I access attributes that have the same name as reserved keywords?
我正在调用一个 API,它返回一个 AttributeDict
,它具有许多属性,例如 to
和 from
。
为了访问这些属性,我使用了点表示法。例如,我使用 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 实现)。即使您使用 getattr
,getattr(ad, 'get')
仍然可能 return AttributeDict 的 get
方法而不是 'get'
键的值。
我正在调用一个 API,它返回一个 AttributeDict
,它具有许多属性,例如 to
和 from
。
为了访问这些属性,我使用了点表示法。例如,我使用 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 实现)。即使您使用 getattr
,getattr(ad, 'get')
仍然可能 return AttributeDict 的 get
方法而不是 'get'
键的值。