How should I access the class instance variables in my roll method?
Should I access self._value with self._value or use my setter by accessing with self.value? Same question for self._sides.
import random
class MSDie:
def __init__(self, sides):
self._sides = sides
self._value = 1
@property
def sides(self):
return self._sides
@property
def value(self):
return self._value
@value.setter
def value(self, number):
self._value = number
def roll(self):
self._value = random.randrange(1, self.sides + 1)
So basically, should I create the roll method like this instead:
def roll(self):
self.value = random.randrange(1, self.sides + 1)
Now I know how to do it correctly the conventional way of get_value/set_value but I am trying to learn how to create more pythonic classes.
Just out of curiosity, why doesn't self.value(random.randrange(1, self.value + 1) or self.value(self, random.randrange(1, self.sides + 1) access the self._value variable and change it?