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

Python如何拼接两个字符串?调用pygame Sound的play方法报错如何解决?

错误原因

你通过字符串拼接得到的zz只是"self.hupen"格式的普通字符串,并不是类初始化时生成的pygame.mixer.Sound实例,给play方法传入字符串不符合参数类型要求,因此触发报错。

解决方案

不要用字符串拼接的方式获取实例属性,使用Python内置的getattr()方法动态读取对象属性即可,直接替换出错的两行代码:

# 替换原来的 zz=str("self." + auswahl) 以及后续play调用代码
zz = getattr(self, auswahl)
zz.play()

如果需要兼容不存在对应属性的异常场景,可以增加默认值判断:

zz = getattr(self, auswahl, None)
if zz:
    zz.play()

修改后完整方法代码

def mach_geraeusche(self,warten,auswahl):
    if self.zaehler < 10:
        aktuelle_zeit = pygame.time.get_ticks()
        if aktuelle_zeit - self.startzeit > warten:
            self.startzeit = aktuelle_zeit
            self.zaehler +=1
            zz = getattr(self, auswahl)
            zz.play()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:15:00