我有一节简单的课。我想使用private属性设置periodicity
属性,该属性在用于设置public属性之前经过测试。我在类模块中传递self,当我运行测试代码时,函数似乎需要两个参数。我认为它应该忽略self
并请求一个freq
参数。我试着“pythonic”并且用@property
和.setter
。我需要更改属性呼叫吗?如果我从set_periodicity
中删除self
,它表示它不识别self
。你知道吗
class ModelSetUp:
def __init__(self):
self.periodicity= None
@property
def set_periodicity(self,freq):
self.periodicity = self._periodicity
@set_periodicity.setter
def set_periodicity(self,freq):
if freq in ("Q","S","A"):
self._periodicity = freq
else:
raise ValueError("Frequency Must Be Q, S or A")
if __name__=="__main__":
mod = ModelSetUp()
mod.set_periodicity("Q")
属性不接受任何参数,也不可调用。试试这个:
相关问题 更多 >
编程相关推荐