我是几天前刚开始学习Python的新手,我尝试制作一个简单的RPG代码,但最近遇到了麻烦,它不断让我返回TypeError:generate_damage()缺少1个必需的位置参数:'自'。有人知道发生了什么吗?
Main.py
from Classes.game import player, bcolors
magic = [{"name": "Tackle", "cost": 1, "dmg": 4},
{"name": "Ember", "cost": 3, "dmg": 6},
{"name": "Leech", "cost": 4, "hp": +5, "dmg": 4},
{"name": "Explosion", "cost": 5, "hp": -10, "dmg": 30}]
player(100, 20, 5, 10,magic)
print(player.generate_damage())
Game.py
import random
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
class player:
def __init__(self, hp, mp, atk, df, mag):
self.maxhp = hp
self.hp = hp
self.maxmp = mp
self.mp = mp
self.atkw = atk - 10
self.atks = atk + 10
self.df = df
self.mag = mag
self.actions = ["Attack", "Magic"]
def generate_damage(self):
return random.randrange(self.atkw, self.atks)
我在以下方面遇到问题:
print(player.generate_damage())
由于它不断返回TypeError:generate_damage()缺少1个必需的位置参数:“self”
最佳答案
您必须实例化一个类,才能使用它的类方法
magic = [{"name": "Tackle", "cost": 1, "dmg": 4},
{"name": "Ember", "cost": 3, "dmg": 6},
{"name": "Leech", "cost": 4, "hp": +5, "dmg": 4},
{"name": "Explosion", "cost": 5, "hp": -10, "dmg": 30}]
p = player(100, 20, 5, 10,magic)
print(p.generate_damage())
关于python - 如何在Python中修复 “TypeError”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61043476/