【发布时间】:2016-02-24 12:55:38
【问题描述】:
我应该如何访问我的roll 方法中的类实例变量?
我应该使用self._value 访问self._value,还是使用self.value 访问我的setter? 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)
所以基本上,我应该像这样创建roll 方法吗:
def roll(self):
self.value = random.randrange(1, self.sides + 1)
现在我知道如何以get_value/set_value 的传统方式正确地做到这一点,但我正在尝试学习如何创建更多的 Python 类。
出于好奇,为什么self.value(random.randrange(1, self.value + 1) 或self.value(self, random.randrange(1, self.sides + 1) 不访问self._value 变量并对其进行更改?
【问题讨论】:
标签: python class properties getter-setter