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

Jupyter Notebook中出现NameError: name 'band'未定义问题求助

问题分析与解决办法

嘿,我一眼就揪出你代码里的问题啦,这就是导致name 'band' is not defined报错的核心原因:

1. 类方法未正确引用实例属性

你的getLyrics方法里直接写了band和song,但这俩变量在方法的局部作用域里根本没定义!你在__init__里定义的是实例属性,必须通过self.band和self.song才能访问——Python不会自动把实例属性暴露给方法的局部变量,所以它找不到band这个名字。

2. 实例化类时的拼写错误

你最后一行的d = Catc...明显是类名CatchLyrics的拼写截断,这也会导致后续调用方法时报错,得补全成正确的类名才行。

修正后的完整代码

import lyricwikia

x = 'Dragonforce'
y = 'Through the fire and flames'

class CatchLyrics:
    def __init__(self, band, song):
        self.band = band
        self.song = song
    
    def getLyrics(self):
        # 必须用self.前缀引用实例属性
        lyric = lyricwikia.get_lyrics(self.band, self.song)
        return lyric

# 实例化类时要写对完整类名
d = CatchLyrics(x, y)
# 调用方法获取歌词
print(d.getLyrics())

至于你说之前复制粘贴还能运行,大概率是当时的代码要么直接用了全局变量x和y(比如直接调用lyricwikia.get_lyrics(x,y)),要么是getLyrics方法里正确写了self.band,后来修改或复制时不小心删掉了self.导致的~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:08:41