所以我有一個名爲Player()
的Python類,它爲一個簡單的戰鬥算法提供了總共20個參數。問題是,當我輸入Player()
和作戰功能分爲一主文件,並已正確導入的一切,我得到這個錯誤:只有兩個參數的Python類?
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()
類,對於一些之所以它只有兩個二十變量考慮在此處定義:
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)
發佈是造成該錯誤可能是有用的代碼。 – Holloway 2014-10-17 15:18:49
追蹤顯示你正在調用'戰鬥(player1,player2)'。這是'戰鬥'類,預計18個更多的論據。 – dano 2014-10-17 15:19:19
Combat是一個只需要兩個參數的函數。我將發佈整個代碼。 – 2014-10-17 15:22:22