I have class 'Player' in python and wanna create instance attribute 'deposit',which intended take integer equal or greather 5000,else raise error or to ask user set valid value.So I tried implement that with 'if else' but it is not the satisfying result.
class Player:
def __init__(self, deposit):
if deposit >= 5000:
self.deposit = deposit
else:
print('Minimum deposit is 5000')
pl = Player(4000) pl.deposit // AttributeError: 'Player' object has no attribute 'deposit'
You are getting an AttributeError because the deposit
attribute is not created when the deposit value is less than 5000.
If you want to prompt the user to set a valid deposit value when the deposit is less than 5000, you can use a loop and the input() function to prompt the user until a valid deposit value is entered like this:
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
And if you want to just raise the error you can do it like this:
class Player:
def __init__(self, deposit):
if deposit >= 5000:
self.deposit = deposit
else:
raise ValueError('Minimum deposit is 5000')
pl = Player(4000)
pl.deposit