如何在python中创建条件实例属性只能取值> = 5000,否则提示用户最小值为5000?

问题描述 投票:0回答:1

我在 python 中有类“Player”,想创建实例属性“deposit”,它打算取等于或大于 5000 的整数,否则引发错误或要求用户设置有效值。所以我尝试用“if else”实现它,但它不是令人满意的结果。

班级选手:

def __init__(self, deposit):
    if deposit >= 5000:
        self.deposit = deposit
    else:
        print('Minimum deposit is 5000')
        

pl = 玩家(4000) pl.deposit // AttributeError: 'Player' 对象没有属性 'deposit'

python class attributes instance
1个回答
0
投票

你得到一个 AttributeError 因为当存款值小于 5000 时没有创建

deposit
属性。 如果要在存款小于 5000 时提示用户设置有效存款值,可以使用循环和 input() 函数提示用户,直到输入有效存款值,如下所示:

class Player:
    def __init__(self, deposit):
        while deposit < 5000:
            print('Minimum deposit is 5000')
            deposit = int(input('Enter a valid deposit value: '))
        self.deposit = deposit

pl = Player(4000)
pl.deposit

如果你只想提出错误,你可以这样做:

class Player:
    def __init__(self, deposit):
        if deposit >= 5000:
            self.deposit = deposit
        else:
            raise ValueError('Minimum deposit is 5000')

pl = Player(4000)
pl.deposit
© www.soinside.com 2019 - 2024. All rights reserved.