我正在调用一个返回 AttributeDict
的 API,该 API 具有许多属性,例如 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']
语法更麻烦,并且不能满足您对点分符号的需求。
目前没有选项可以使用点符号访问此类属性。只要坚持索引。它处理保留名称、带空格/连字符/等的名称。在它们中,以及与现有方法冲突的名称(假设合理的 AttributeDict 实现)。即使您使用了 getattr
,getattr(ad, 'get')
仍可能返回 AttributeDict 的 get
方法而不是 的值code>'get'
键。
关于python - 如何访问与保留关键字同名的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54335750/