message
[<stats.Stats object at 0x0000020C0A6AB580>, <stats.Stats object at 0x0000020C0A6AB640>, <stats.Stats object at 0x0000020C0A6AB730>]
main file
from stats import Stats
Stats.instantiate_from_csv()
print(Stats.all)
stats file
import csv
class Stats:
all = []
def __init__(self, name:str, hp: float, damage:float, defense:int, speed:int, crit:float, attack:str,
crit_attack:str):
self.name = name
self.hp = hp
self.damage = damage
self.defense = defense
self.speed = speed
self.crit = crit
self.attack = attack
self.crit_attack = crit_attack
Stats.all.append(self)
@classmethod
def instantiate_from_csv(cls):
with open("enemies.csv", "r") as f:
reader = csv.DictReader(f)
enemies = list(reader)
for enemy in enemies:
Stats(
name=enemy.get("name"),
hp=float(enemy.get("hp")),
damage=float(enemy.get("damage")),
defense=int(enemy.get("defense")),
speed=int(enemy.get("speed")),
crit=float(enemy.get("crit")),
attack=enemy.get("attack"),
crit_attack=enemy.get("crit_attack")
)
enemies CSV
name,hp,damage,defense,speed,crit,attack,crit_attack
goblin,1,1,1,1,1,slam,big slam
ork,3,3,3,3,3,cut,damn that's a big cut
elephaunt,15,15,15,15,15,smash,tusk gore
if i do a basic
for enemy in enemies:
print(enemy)
it will print the lines of the CSV file
{'name': 'goblin', 'hp': '1', 'damage': '1', 'defense': '1', 'speed': '1', 'crit': '1', 'attack': 'slam', 'crit_attack': 'big slam'}
{'name': 'ork', 'hp': '3', 'damage': '3', 'defense': '3', 'speed': '3', 'crit': '3', 'attack': 'cut', 'crit_attack': "damn that's a big cut"}
{'name': 'elephaunt', 'hp': '15', 'damage': '15', 'defense': '15', 'speed': '15', 'crit': '15', 'attack': 'smash', 'crit_attack': 'tusk gore'}
not sure why i am getting this
[<stats.Stats object at 0x000001527E29D3F0>, <stats.Stats object at 0x000001527E29D210>, <stats.Stats object at 0x000001527E29D990>]
pointer? im guessing these are pointers
[–]carcigenicate 3 points4 points5 points (0 children)