类的Python错误初始化

时间:2013-10-01 15:29:31

标签: python class init

以下是我的代码。它给了我一个编译错误,说艺术家还没有被定义。这让我感到困惑,因为艺术家是我正在传递的参数。

感谢。

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

1 个答案:

答案 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运行代码以确认此诊断。