通过原始输入将字典值应用于类对象?

2024-10-01 19:19:02 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个包含多个角色类信息的键和值的字典,例如“骑士”或“法师”,我想将它们应用到一个玩家对象来确定它们的属性

class Player(Object):
    CHARCLASSDICT = {'knight': {'level': 4, 'health': 50, 'stamina': 50, 'mana': 50,
                                'strength': 10, 'defense': 8, 'intelligence': 8}}

    def __init__(self):
        self.name = 'Unknown'
        self.charclass = 'Traveller'
        self.level = 1
        self.health = 1
        self.stamina = 1
        self.mana = 1
        self.strength = 1
        self.defense = 1
        self.intelligence = 1

player = Player() 

有了这些值,我希望用户向我展示一个他们希望成为的类的字符串,并将这些值从dict传输到player对象

inp = raw_input('What class would you like to be?: ').lower()
if inp == 'knight':
    # Apply stats from self.CHARCLASSDICT['warrior'] to the player object's init function attributes. 

我怎么能这样做呢


Tags: 对象selfinitlevelstrengthclassintelligenceplayer
1条回答
网友
1楼 · 发布于 2024-10-01 19:19:02

player_type传递给__init__()方法怎么样

代码-

class Player(object):
    CHARCLASSDICT = {'knight': {'level': 4,
                                'health': 50,
                                'stamina': 50,
                                'mana': 50,
                                'strength': 10,
                                'defense': 8,
                                'intelligence': 8}}

    def __init__(self, player_type):
        self.name = 'Unknown'
        self.charclass = 'Traveller'
        self.level = self.CHARCLASSDICT[player_type]['level']
        self.health = self.CHARCLASSDICT[player_type]['health']
        self.stamina = self.CHARCLASSDICT[player_type]['stamina']
        self.mana = self.CHARCLASSDICT[player_type]['mana']
        self.strength = self.CHARCLASSDICT[player_type]['strength']
        self.defense = self.CHARCLASSDICT[player_type]['defense']
        self.intelligence = self.CHARCLASSDICT[player_type]['intelligence']


player_type = raw_input('What type of player? : ')

player = Player(player_type)

相关问题 更多 >

    热门问题