请教大神,Python @property setter可以设置多个属性值吗?
例如
class A():
...
@property
def a(self,x,y): ...
@a.setter
def a(self,x,y): self.x=x; self.y=y
Python @property setter可以设置多个属性值吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- oyljerry 2016-12-28 05:42关注
你可以传tuple,list等
class A(object): def __init__(self, val): self.idx = val @property def idx(self): return self._idx @idx.setter def idx(self, val): try: value1, value2 = val except ValueError: raise ValueError("Pass an iterable with two items") else: """ This will run only if no exception was raised """ self._idx = sha512(value1+value2)
Demo
>>> a = A(['foo', 'bar']) #pass a list >>> b = A(('spam', 'eggs')) #pass a tuple >>> a.idx <sha512 HASH object @ 0xa57e688> >>> a.idx = ('python', 'org') #works >>> b.idx = ('python',) #fails Traceback (most recent call last): ... raise ValueError("Pass an iterable with two items") ValueError: Pass an iterable with two items
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试,帮帮忙吧
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python