Python 3:object()不接受param

2024-10-01 02:21:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个名为Weapons.py的文件中有一个名为Pistol的类,如下所示:

class Pistol(object):
    MAXAMMO = 6
    def __init__(self, ammo):
        if(ammo <= self.MAXAMMO):
            self.ammo = ammo
    def shoot(self):
        if(ammo > 0):
            accuracy = random.randint(0, 3)
            return 3 * accuracy
            ammo -= 1
        else:
            print("No ammo")

以及一个名为ColtM1911的类,它继承自Pistol。看起来像这样:

^{pr2}$

当我跑步时:

import Player
import SetUp
from Utils import *
import pickle
import TitleAnimation
import os
import SaveLoad
from Weapons import *

gun = ColtM1911(5)

在另一个文件中,它给了我"TypeError: object() takes no parameters"当在shell中尝试它的工作时,所以我怀疑这是因为它在一个单独的文件中。在

完整的回溯是

Traceback (most recent call last):
  File "C:\Users\James\Documents\game.py", line 3, in <module>
    gun = Weapons.ColtM1911(5)
TypeError: object() takes no parameters

Tags: 文件frompyimportselfifobjectdef
1条回答
网友
1楼 · 发布于 2024-10-01 02:21:52

如果Pistol实际定义为:

class Pistol(object()):
                 # ^ note extraneous parentheses

在Python3.x中,根本不需要object;默认情况下,所有类都是新样式的。此外,还存在逻辑错误,M1911.__init__是冗余的。尝试类似于:

^{pr2}$

相关问题 更多 >