如何修复此关于缺少方法的 AttributeError?
How to fix this AttributeError about a missing method?
我的 运行 我的音乐播放器脚本有问题,也许你能告诉我我做错了什么?
错误:
AttributeError: 'MusicPlayer' object has no attribute 'pause'
代码:
from tkinter import *
from tkinter import filedialog
from pygame import mixer
class MusicPlayer:
def __init__(self, window ):
window.geometry('420x200'); window.title('MNote Player'); window.resizable(0,0)
Load = Button(window, text = 'Load', width = 10, font = ('Times', 10), command = self.load)
Play = Button(window, text = 'Play', width = 10,font = ('Times', 10), command = self.play)
Pause = Button(window,text = 'Pause', width = 10, font = ('Times', 10), command = self.pause)
Stop = Button(window ,text = 'Stop', width = 10, font = ('Times', 10), command = self.stop)
Load.place(x=0,y=20);Play.place(x=110,y=20);Pause.place(x=220,y=20);Stop.place(x=110,y=60)
self.music_file = False
self.playing_state = False
def load(self):
self.music_file = filedialog.askopenfilename()
def play(self):
if self.music_file:
mixer.init()
mixer.music.load(self.music_file)
mixer.music.play()
else:
mixer.music.unpause()
self.playing_state = False
def stop(self):
mixer.music.stop()
root = Tk()
app= MusicPlayer(root)
root.mainloop()
你的 MusicPlayer
class 确实没有 pause
方法。
您可以通过委托给底层 mixer
:
来创建一个
def pause(self):
mixer.music.pause()
发生这种情况是因为您的项目中有一个名为 MusicPlayer.py 的文件,该文件正在隐藏 Python 标准库中的 MusicPlayer 模块。请重命名该文件,问题应该会消失。
我的 运行 我的音乐播放器脚本有问题,也许你能告诉我我做错了什么?
错误:
AttributeError: 'MusicPlayer' object has no attribute 'pause'
代码:
from tkinter import *
from tkinter import filedialog
from pygame import mixer
class MusicPlayer:
def __init__(self, window ):
window.geometry('420x200'); window.title('MNote Player'); window.resizable(0,0)
Load = Button(window, text = 'Load', width = 10, font = ('Times', 10), command = self.load)
Play = Button(window, text = 'Play', width = 10,font = ('Times', 10), command = self.play)
Pause = Button(window,text = 'Pause', width = 10, font = ('Times', 10), command = self.pause)
Stop = Button(window ,text = 'Stop', width = 10, font = ('Times', 10), command = self.stop)
Load.place(x=0,y=20);Play.place(x=110,y=20);Pause.place(x=220,y=20);Stop.place(x=110,y=60)
self.music_file = False
self.playing_state = False
def load(self):
self.music_file = filedialog.askopenfilename()
def play(self):
if self.music_file:
mixer.init()
mixer.music.load(self.music_file)
mixer.music.play()
else:
mixer.music.unpause()
self.playing_state = False
def stop(self):
mixer.music.stop()
root = Tk()
app= MusicPlayer(root)
root.mainloop()
你的 MusicPlayer
class 确实没有 pause
方法。
您可以通过委托给底层 mixer
:
def pause(self):
mixer.music.pause()
发生这种情况是因为您的项目中有一个名为 MusicPlayer.py 的文件,该文件正在隐藏 Python 标准库中的 MusicPlayer 模块。请重命名该文件,问题应该会消失。