You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Owlready2中如何处理Python内以数字开头的无效属性名访问问题

报错原因

Python语法不允许标识符以数字开头,使用chebi.2_STAR这种点语法访问属性时,Python会将开头的2识别为十进制数字字面量,后续的_STAR不符合数字语法规则,因此直接抛出SyntaxError: invalid decimal literal语法错误,该限制属于Python基础语法约束,和Owlready2本身功能无关。

正确访问方案

以下两种方案都可以正常获取目标资源:

  • 方案1:使用Python内置getattr()函数(通用方案,适用于所有不符合Python标识符命名规则的属性访问场景)
# 第一步获取目标资源
star_2_resource = getattr(chebi, "2_STAR")
# 第二步访问属性
res_id = star_2_resource.id

# 也可简写为一行
res_id = getattr(chebi, "2_STAR").id
  • 方案2:通过完整IRI直接获取(Owlready2原生方案,适合已知资源完整IRI的场景)
from owlready2 import default_world

# 填入你已知的资源完整URI即可直接获取资源对象
star_2_resource = default_world["http://purl.obolibrary.org/obo/chebi.owl#2_STAR"]
# 访问对应属性
res_id = star_2_resource.id

内容的提问来源于stack exchange,提问作者Yasunori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:39:03