首页 > 解决方案 > 如何正确保存和读取类参数?

问题描述

我想实现将字符保存到 json 文件,但我不知道以后如何正确读取它。你能告诉我如何正确地做吗?

class Hero:
    def __init__(self, name: str, hp: int, damage: int, arch_spw: int = 0):
        self.__name = name
        self.__hp = hp
        self.__hp_for_restore = hp
        self.__damage = damage
        self.__superpower_archer = arch_spw
    .........
class Mage(Hero):
    def __init__(self, *args, **kwargs):
        super().__init__(*args)
        self.__lifestill = round(uniform(0.3, 0.7), 2)

我正在尝试这样做

mage = Mage("Mage", 100 + randint(0, 50), 25 + randint(0, 20))
pprint(mage.__dict__)
mage2 = Mage(mage.__dict__)
pprint(mage2.__dict__)

但它不起作用,我得到了错误

{'_Hero__damage': 25,
 '_Hero__hp': 125,
 '_Hero__hp_for_restore': 125,
 '_Hero__name': 'Mage',
 '_Hero__superpower_archer': 0,
 '_Mage__lifestill': 0.51}
Traceback (most recent call last):
  File "C:\Users\oleg.korshunov\Desktop\rpgsagapython\saga\main.py", line 9, in <module>
    mage2=Mage(mage.__dict__)
  File "C:\Users\oleg.korshunov\Desktop\rpgsagapython\saga\characters\mage.py", line 7, in __init__
    super().__init__(*args)
TypeError: Hero.__init__() missing 2 required positional arguments: 'hp' and 'damage'

Process finished with exit code 1

标签: jsonpython-3.xinheritanceargumentskeyword-argument

解决方案


推荐阅读