Próbuję więc zaprojektować klasę dla bronisystem w grze tekstowej. Zasadniczo chcę, aby wszystkie miecze zadawały 1-6 obrażeń, a następnie dodawały obrażenia na podstawie modyfikatora broni. Mam klasę do pracy, jeśli wywołam funkcję w klasie za pomocą modyfikatora, ale chcę ustawić klasę raz i nie trzeba jej wpisywać wiele razy
To jest kod, który mam.
import dice #uses random generation to simulate dice rolls
class sword():
def __init__(self, name, modifier):
self.name = name
self.mod = modifier
def dmg(self, modifier):
base = dice.d6
self.dmg = base + modifier
return self.dmg
x = sword("Sword of coolness", 1)
print x.name
print x.dmg(1)
Odpowiedzi:
2 dla odpowiedzi № 1Właśnie dlatego to zrobiłeś self.mod = modifier
. Teraz wartość jest dostępna dla metod jako self.mod
. Abyś mógł stworzyć swoją metodę:
def dmg(self):
base = dice.d6
self.dmg = base + self.mod
return self.dmg
Jak zauważa YS-L, w komentarzu prawdopodobnie nie chcesz tego robić, ponieważ nadpisujesz dmg
metoda z wartością. Może lepszym pomysłem jest nadanie tej metodzie innej nazwy:
def modify_dmg(self):
base = dice.d6
self.dmg = base + self.mod
return self.dmg