小编Ped*_*iro的帖子

将参数传递给数据类会导致 TypeError

我一直遇到数据类问题,尽管使用装饰器并将参数传递给数据类,但我会得到一个TypeError说明该对象不带任何参数。这看起来很不稳定,并且似乎不是由代码更改触发的,为同事工作的东西对我不起作用(但有时确实如此)。我们都使用 Python 3.9.7,并且都使用 PyCharm 进行编码。

我从 Windows 切换到 Ubuntu,试图阻止这个问题,但大约一周后,它又出现了。这是我的最后一个堆栈跟踪错误:

Traceback (most recent call last):
  File "/home/pedro/Documents/datacollect/Python-Shape-Game/main.py", line 188, in <module>
    shapes = load_shapes()
  File "/home/pedro/Documents/datacollect/Python-Shape-Game/main.py", line 139, in load_shapes
    return [factory.create(item) for item in data["shapes"]]
  File "/home/pedro/Documents/datacollect/Python-Shape-Game/main.py", line 139, in <listcomp>
    return [factory.create(item) for item in data["shapes"]]
  File "/home/pedro/Documents/datacollect/Python-Shape-Game/factory.py", line 28, in create
    return creation_function(**arguments)
TypeError: Rectangle() takes no arguments
pygame 2.1.0 (SDL 2.0.16, Python 3.9.7)
Run Code Online (Sandbox Code Playgroud)

它使用工厂/插件模式从 JSON 注册形状,factory.py 中最值得注意的行是:

shape_creation_functions: dict[str, Callable[..., Shape]] = {}
# ... …
Run Code Online (Sandbox Code Playgroud)

python python-3.9 ubuntu-20.04

4
推荐指数
2
解决办法
3233
查看次数

标签 统计

python ×1

python-3.9 ×1

ubuntu-20.04 ×1