我正在调用一个API,该API返回一个AttributeDict
,它具有许多属性,例如to
和from
。
要访问这些属性,我使用点表示法。例如,我使用object.to
,就可以正常工作。
当我尝试使用object.from
时,出现错误消息SyntaxError: invalid syntax
。我认为这是因为from
is a keyword in Python。
如果是这种情况,是否可以带点访问from
?目前,我正在使用object["from"]
,它可以正常工作,但与我的其余代码不匹配。
答案 0 :(得分:4)
虽然可以使用getattr
访问此类属性:
val = getattr(ad, 'from')
这比AttributeDict支持的ad['from']
语法麻烦,并且不能满足您对点分表示法的需求。
当前没有选项可以使用点分符号访问此类属性。只需坚持索引。它处理保留名称,带空格/连字符/等的名称。它们中的名称,以及与现有方法冲突的名称(假定合理的AttributeDict实现)。即使您使用了getattr
,getattr(ad, 'get')
仍可能会返回AttributeDict的get
方法,而不是'get'
键的值。