以下是我的代码。它给了我一个编译错误,说艺术家还没有被定义。这让我感到困惑,因为艺术家是我正在传递的参数。
感谢。
class Track:
def __init__(self, artist, title, album=None):
self.artist = str(artist)
self.title = str(title)
self.album = album
def __str__(self):
return self.artist + " " + self.title + " " + self.album
def set_album(self, album):
self.album = album
班级专辑: def init (self,artist,title,year ='',genre ='',tracks = None): self.artist = str(艺术家) self.title = str(title) self.year = str(year) self.genre = str(类型) self.tracks = tracks
def __str__(self):
return self.artist + " " + self.title + " " + self.year + " " + self.genre + " " + self.tracks
def add_track(track):
self.tracks.append(track)
def music_library(曲目,专辑):
while true:
command = raw_input("Please enter a command (s, st or sa)").lower()
if "s " in command:
searchText = command.split()(1)
elif "sa " in command:
searchText = command.split()(1)
elif "st " in command:
searchText = command.split()(1)
导入操作系统 来自mutagen.mp3导入MP3 def load_library(dir):
for root, dirs, files in os.walk("."):
for filename in files:
if filename.lower().endswith(".mp3"):
fullname = os.path.join(root, filename)
print "\n%s" % fullname
try:
audio = MP3(fullname)
for key in audio:
print " %s: %s" % (key, str(audio[key]))
except:
print "Error on %s" % fullname
这是整个文件。我正在使用
运行它python musiclib.py
答案 0 :(得分:3)
我怀疑是因为你正在混合标签和空格。当我复制并粘贴您的代码并查看它时,我看到:
' class Track:'
' \tdef __init__(self, artist, title, album=None):'
' \t\tself.artist = str(artist)'
' self.title = str(title)'
' self.album = album'
' '
' \tdef __str__(self):'
' \t\treturn self.artist + " " + self.title + " " + self.album'
' '
' \tdef set_album(self, album):'
' \t\tself.album = album'
混合制表符和空格会混淆Python有关代码缩进的程度。切换到使用四个空格进行缩进,并使用python -tt yourprogramname.py
运行代码以确认此诊断。