Python类只接受两个参数?

2024-05-15 08:12:49 发布

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

因此,我有一个名为Player()的Python类,它为一个简单的战斗算法提供了总共20个参数。问题是,当我将Player()和战斗函数导入到主文件中,并且正确地导入了所有内容时,会出现以下错误:

Traceback (most recent call last):
File "C:\Users\Thomas\Desktop\Paradisium\main_draft.py", line 53, in <module>
     combat(player1,player2)
TypeError: __init__() missing 18 required positional arguments: 'speed', 'agility', 'endurance',           'hitpoints', 'HPregen', 'EPregen', 'originalHP', 'originalEP', 'originalMP', 'MP', 'MGKregen',  'MGKdefence', 'MGKattack', 'debuff', 'buff', 'setType', 'weapon', and 'name'

如您所见,它正在正确导入并获取Player()类,出于某种原因,它只接收此处定义的20个变量中的两个:

player1=Player(90,20,50,90,20,1000,.03,1,1000,20,20,20,1,90,100,2,2,3,None,"Somerled Murdoch")

我不知道是导入错误还是类似的东西,我很确定类中的变量没有限制。你知道吗

编辑,代码如下:

Player()类:

class Player (object):
def __init__(self, physicalAttack, defence, speed, agility, endurance, hitpoints, HPregen, EPregen, originalHP, originalEP, originalMP, MP, MGKregen, MGKdefence, MGKattack,
             debuff, buff, setType, weapon, name):

combat()函数:

def combat(player1,player2):

将它们导入主文件的行:

import combatAlgorithmDraft
Player=combatAlgorithmDraft.Player
combat=combatAlgorithmDraft.Player

在主文件中调用它们的行:

    player1=Player(90,20,50,90,20,1000,.03,1,1000,20,20,20,1,90,100,2,2,3,None,"Somerled Murdoch")
    player2=Player(60,70,60,50,20,1100,.01,1,1100,20,0,0,0,60,0,2,2,0,0,"The Black Knight")
    combat(player1,player2)

Tags: 文件函数init错误playerspeedcombatplayer2
1条回答
网友
1楼 · 发布于 2024-05-15 08:12:49
combat=combatAlgorithmDraft.Player

你是故意的吗?你知道吗

combat=combatAlgorithmDraft.combat

在任何情况下,将其他模块中的内容导入当前名称空间的常规方法是

from combatAlgorithmDraft import Player, combat

相关问题 更多 >