引用原始类之外的自变量

时间:2015-11-03 20:52:21

标签: python python-3.x

class player(object):
    def __init__(self):
        self.health = 100
        self.stats = {'STR': 0,
                     'DEF':0}

class create_character(object):
    def choose_class(self):
        inp = input("Please choose a class!: ").lower()
        s = ("Knight, Archer, or Mage")
        print(s)
        if inp == 'knight':
            self.stats['STR'] = 15
            self.stats['DEF'] = 15
            print(self.stats)

我目前面临的问题是,当我在create_character下引用self.stats时,它会告诉我特定的课程没有“self.stats'”。如果我尝试使用player.self.stats或者player.stats,它会告诉我同样的事情,即该类没有这些属性。如何从其他类引用字典或变量,并更改其属性。此外,当我打印self.health,self.stats,self.name或播放器类所持有的任何属性时,它会给我一些不需要的信息。有没有办法排除额外的信息?

1 个答案:

答案 0 :(得分:0)

我相信这将完成您正在寻找的工作:

class player(object):
    def __init__(self):
        self.health = 100
        self.stats = {'STR': 0,
                     'DEF':0}

def choose_class():
    inp = input("Please choose a class (Knight, Archer, or Mage): ").lower()
    if inp == 'knight':
        # create the player object
        p = player()
        # changes the values for the attributes in the player object
        p.stats['STR'] = 15
        p.stats['DEF'] = 15
        print(p.stats)

# calls the function to choose the class
choose_class()

虽然这不是一个好的编码风格,所以我建议遵循OOP Python教程。