类型错误:draw() 需要 1 个位置参数(给了 3 个)
我写了这段代码,用Pyglet在Python中打开一个窗口...
import pyglet
from pyglet import window
class Window(pyglet.window.Window):
def __init__(self):
super(Window, self).__init__()
myLabel = pyglet.text.Label("Prototype")
windowText = myLabel.draw(Window, "Hello World",
font_name = "Times New Roman",
font_size = 36,
color = (193, 205, 193, 255))
def on_draw(self):
self.clear()
self.label.draw()
if __name__ == '__main__':
window = Window()
pyglet.app.run()
但是每次我运行它时都会出现这个错误:
TypeError: draw() takes exactly 1 non-keyword argument (3 given)
据我所知,“(3 given)”的意思是问题出在字体大小或颜色的参数上,但我不太确定。有人能解释一下哪里出错了吗?并帮我解决这个问题吗?
3 个回答
1
你给的三个非关键字参数分别是对象实例、Window
和 "Hello World"
。其实它只需要对象实例。再看看文档,确认一下 draw()
方法需要哪些参数。你可以打印一下 myLabel
的 repr()
,这样你就能知道它是什么类型了。
1
你传给draw()的三个非关键字参数分别是myLabel(这个是隐含的,实际上是self
),Window,还有“Hello World”。关于这个方法的详细说明可以在这里找到。
你确定你不是想做成这样吗?
myLabel = pyglet.text.Label("Hello World")