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

如何动态替换Python代码中对象属性的home前缀为数组指定值?

动态访问Python对象属性的解决方法

你的现有代码:

with open('matchup' + MatchupStr_Test + '_' + HomeAway[MatchupNum_Test] + 'team_name_NewTest.txt', 'w') as f:
    f.write(str(box_scores[MatchupNum[MatchupNum_Test]].home_team.team_name))

你尝试的写法存在语法错误,Python不支持.[变量]_team这种格式来动态访问属性。正确的做法是使用getattr()函数实现动态属性访问,修改后的代码如下:

# 提取重复使用的索引,简化代码
matchup_idx = MatchupNum[MatchupNum_Test]
current_box_score = box_scores[matchup_idx]

# 获取动态队伍类型(home/away)并拼接属性名
team_type = HomeAway[MatchupNum_Test]
team_attr_name = f"{team_type}_team"

# 动态获取对应属性
target_team = getattr(current_box_score, team_attr_name)

# 写入文件,用f-string让文件名拼接更直观
with open(f'matchup{MatchupStr_Test}_{team_type}team_name_NewTest.txt', 'w') as f:
    f.write(str(target_team.team_name))

关键说明

  • getattr(obj, attr_str)是Python专门用来动态访问对象属性的工具:第一个参数是目标对象,第二个参数是属性名的字符串,这样就能根据变量值动态获取home_team或away_team属性。
  • 把重复使用的索引和变量单独提取出来,能让代码更易读,也方便后续修改。
  • 文件名改用f-string写法,比字符串拼接更简洁,新手更容易理解结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:40:35