Thứ nhất, đây là mã của tôi:LoạiError: Siêu không lấy đối số từ khóa?
class Enemy():
def __init__(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage
def is_alive(self):
"""Checks if alive"""
return self.hp > 0
class WildBoar(Enemy):
def __init__(self):
super(WildBoar, name="Wild Boar", hp=10, damage=2).__init__()
class Marauder(Enemy):
def __init__(self):
super(Marauder, name="Marauder", hp=20, damage=5).__init__()
class Kidnappers(Enemy):
def __init__(self):
super(Kidnappers, name="The Kidnappers", hp=30, damage=7).__init__()
Khi tôi biên dịch này, tôi nhận được lỗi này:
super(WildBoar, name="Wild Boar", hp=10, damage=2).__init__()
TypeError: super does not take keyword arguments
Tôi cố gắng nhìn xung quanh cho bất kỳ loại sự giúp đỡ nhưng tôi không thể tìm thấy bất cứ điều gì. Tôi cũng có một số Kwargs trong một số người siêu hạng của lớp khác, nhưng đây là những người gây bất kỳ vấn đề nào (kể từ bây giờ). Vậy điều gì có thể gây ra điều này? Tôi cũng đã nhìn thấy ai đó nói rằng đặt một super
trong lớp cơ sở sẽ sửa chữa nó, nhưng nó không hoạt động (tôi đã vượt qua trong cùng một đối số trong lớp cơ sở của __init__
).
OK, tôi sẽ đi qua tất cả các mã của tôi và sửa tất cả, cảm ơn! – Scoutdrago3