【问题标题】:How to assign "default" values in class?如何在课堂上分配“默认”值?
【发布时间】:2022-12-09 08:22:50
【问题描述】:

让我们假设用户输入是正确的,为什么输入不匹配? 如何在构造函数中设置 playClass 的值?

class player():
    playClass = None
    items = []
    level = 1

    def __init__(self) -> None:
        x = input('Welcome! Select a class: W for warrior, M for Magician, B for Bowmaster')

        match x.lower:
            case 'w':
                self.playClass = 'Warrior'
            case 'm':
                self.playClass = 'Magician'
            case 'b':
                self.playClass = 'Bowmaster'
    
    def player_add_item(self, item):
        self.items.append(item)
    
    def player_add_level(self):
        self.level += 1

    def player_get_class(self):
        return self.playClass

p = player()
print(p.playClass)

【问题讨论】:

    标签: python


    【解决方案1】:

    您需要在__init__中分配给他们;如所写,它们都是班级属性(在所有实例之间共享,并且在类本身上可见),而不是实例属性(对每个实例都是唯一的)。

    class player():
    
        def __init__(self) -> None:
            x = input('Welcome! Select a class: W for warrior, M for Magician, B for Bowmaster')
            self.playClass = None
            self.items = []
            self.level = 1
    
            match x.lower:
                case 'w':
                    self.playClass = 'Warrior'
                case 'm':
                    self.playClass = 'Magician'
                case 'b':
                    self.playClass = 'Bowmaster'
    

    【讨论】:

      猜你喜欢
      • 2019-01-14
      • 2016-08-08
      • 1970-01-01
      • 2019-07-03
      • 2019-03-26
      • 2015-03-27
      • 2012-01-12
      • 2015-02-23
      相关资源
      最近更新 更多