我一直在使用python游乐场书来学习一些python。浏览了有关Boids代码的章节。它使用matlibplot本质上用规则绘制成群“运动”的圆。
我遇到的问题是button_press_event部分。该事件的目的是: 左键单击-在鼠标位置添加Boid。 右键单击-将当前群分散在鼠标位置。
但是,当我单击情节时,我得到一个错误。这不会使程序崩溃,并且会显示以下消息:
this
据我了解,这意味着它实际上无法接受事件(左键或右键单击)或输入中缺少该事件。
是什么导致此错误?如何解决?谢谢
这是本书一章中的代码(来自github并进行了更正):
> File
> "C:\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\cbook\__init__.py",
> line 388, in process
> proxy(*args, **kwargs) File "C:\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\cbook\__init__.py",
> line 228, in __call__
> return mtd(*args, **kwargs) TypeError: buttonPress() missing 1 required positional argument: 'event'
答案 0 :(得分:0)
我相信您需要写(注意boids
上的小“ b”):
cid = fig.canvas.mpl_connect('button_press_event', boids.buttonPress)
因为boids
是类Boids
的实例,而Boids.buttonPress()
不是静态函数,因此不能直接从类Boids