我正面临着一种奇怪的行为:在我将其归类之前,在2D向量上解压缩赋值的工作非常好。
$ ipython
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
IPython 5.5.0
pygame 1.9.4
Hello from the pygame community. https://www.pygame.org/contribute.html
In [1]: from pygame.math import Vector2
In [2]: a = Vector2(1,1)
In [3]: x,y = a
In [4]: class myvec(Vector2):
...: pass
...:
In [5]: b = myvec(1,1)
In [6]: z,w = b
---------------------------------------------------------------------------
SystemError Traceback (most recent call last)
<ipython-input-6-dc661fdbb625> in <module>()
----> 1 z,w = b
SystemError: src/math.c:2954: bad argument to internal function
有人可以帮我弄清楚这里发生了什么吗?是我需要在其他地方报告的pygame错误还是我做错了什么?
有趣的事实:它在一段时间内运行良好,然后突然开始抛出该异常,并且没有回头路了。
答案 0 :(得分:1)
这可能不是答案,但是我从您的示例开始进行了一些检查。例如,表面上看起来确实像您的两个类至少有些不同:
>>> [print(item) for item in dir(a) if item not in dir(b)]
[]
>>> [print(item) for item in dir(b) if item not in dir(a)]
__dict__
__module__
__weakref__
[None, None, None]
所以看起来表面上继承确实增加了一些东西,即使您只是在表面上复制旧类。
因此,让我们看一下here中原始类的外观:
Welp,它是用C语言实现的,但错误似乎指向第2954
行:
double *other_coords;
这让我很困惑,但是我会将其作为问题提交到github上,或者等待评论中提到的问题修复程序推出