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

如何在Python中使用globals()访问对象属性?

问题解决思路

你犯的核心错误是:globals()的键是变量名(比如"Image1"),而不是"Image1.path"这种带属性的字符串,所以直接拼接属性名当key肯定找不到,触发KeyError。

正确写法

分两步操作:先从globals()里取出对应的Node对象,再访问它的属性:

# 假设image是整数1
print(globals()[f"Image{image}"].path)

更推荐的优化方案

别用globals()这种容易出错的方式,直接把这些节点放到列表或字典里统一管理:

  • 用列表存储:
# 把所有Image节点按顺序放进列表
images = [
    Node("I1", path="path", parent=Images, priceL=prices[0:12], fp=np.array([70,172])),
    Node("I2", path="path2", parent=Images, ...),  # 其他节点
]
# 访问第1个节点的path属性
print(images[0].path)
  • 用字典存储:
# 用变量名当key,节点对象当值
images = {
    "Image1": Node("I1", path="path", ...),
    "Image2": Node("I2", path="path2", ...),
}
# 直接通过key访问对应节点的属性
print(images["Image1"].path)

这种方式代码更清晰,也避免了全局变量操作的风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:24:55