我是Python的新手,我刚刚发现了这些属性.当我在一个简单的变量上尝试它时,它工作得很好,但我不能使它在列表上工作.执行下面的代码时,它将调用两次getter而不是setter.我知道在我的例子中,该属性没有附加值,但它是为了简化.

class C:

def __init__(self):

self._x = [1, 2, 3]

@property

def x(self):

print("getter")

return self._x

@x.setter

def x(self, value):

print("setter")

self._x = value

c = C()

c.x[1] = 4

print(c.x[1])

有没有人知道我做错了什么?

最佳答案:

只有直接获取或设置属性时才使用setter / getter:

c.x # getter

c.x = [1,2,3] # setter

如果修改属性中的元素,则获取属性,然后设置相应的元素.你的例子相当于

d = c.x # getter again

d[1] = 4

您还可以使用__getitem__和__setitem__直接设置和获取特定项目.

class C:

def __init__(self):

self._x = [1, 2, 3]

@property

def x(self):

print("getter")

return self._x

@x.setter

def x(self, value):

print("setter")

self._x = value

def __getitem__(self, idx):

print("getitem")

return self._x[idx]

def __setitem__(self, idx, value):

print("setitem")

self._x[idx] = value

>>> c = C()

>>> c[1] = 3

setitem

>>> c.x

getter

[1, 3, 3]

>>> c[2]

getitem

3

标签:python,python-3-x

来源: https://codeday.me/bug/20190516/1115437.html

python中属性_列表中的Python属性相关推荐

  1. python字符串排序_列表中字符串按照某种规则排序的方法(python)

    原博文 2017-05-05 16:35 − 有时候处理数据时,想要按照字符串中的数字的大小进行排序. 譬如,存在一组记录文件,分别为'1.dat','2.dat'... 当我把该文件夹中的所有记录文 ...

  2. python权重是什么意思_在python带权重的列表中随机取值的方法

    1 random.choice python random模块的choice方法随机选择某个元素 foo = ['a', 'b', 'c', 'd', 'e'] from random import ...

  3. python输出列表元素_在Python中分别打印列表中的每一个元素方法

    在Python中分别打印列表中的每一个元素方法 更新时间:2018年11月07日 15:12:03 作者:wintersshi 今天小编就为大家分享一篇在Python中分别打印列表中的每一个元素方法, ...

  4. Python产生100个1—100的随机数放入列表Num中,输出列表中的数,然后将它们排序,并输出排序结果。

    import random #内建函数 Num=[] for i in range(101):Num.append(random.randint(1,100)) #append()将参数添加到列表末尾 ...

  5. python统计列表中元素个数_python中计算一个列表中连续相同的元素个数方法

    python中计算一个列表中连续相同的元素个数方法 最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现 ...

  6. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  7. python list除以_每日一课 | python判断奇数和偶数

    在这个问题中,我们为用户提供了一个可能是偶数和奇数混合的列表,根据偶数和奇数的概念,我们将列表分为两个列表,一个仅包含偶数,另一个将包含仅包含奇数.在执行此任务之前,我们将学习如何在Python中检查 ...

  8. Myeclipse2015把web项目添加至tomcat中,添加列表中却没有想要添加的项目

    Myeclipse2015把web项目添加至tomcat中,添加列表中却没有想要添加的项目?? 解决方法: 项目-右键-Properties-Myeclipse-Project Factes -  D ...

  9. 编程中怎样将列表中数字排序_R编程中的列表

    编程中怎样将列表中数字排序 Lists in R can group together different kinds of variables into a single compound stru ...

最新文章

  1. python编程中的if __name__ == 'main': 的作用和原理
  2. PAT甲级1008 Elevator:[C++题解]模拟
  3. 计算机网络优化是啥,浅析计算机网络优化的方案.doc
  4. 【渝粤教育】电大中专药事管理与法规作业 题库
  5. 6-3 二叉树的重建 uva536
  6. sql%rowcount转mysql_Oracle光速入门二 ——马士兵Oracle视频讲义笔记
  7. SpringBoot从入门到精通教程
  8. 计算机类文献检索考试题,文献检索试题精选2
  9. gstreamer/deepstream方面的博文,全网首发且唯一,有图为证
  10. 今日头条,即将崛起为中国互联网第三极
  11. Android 开发之初识 Android
  12. SpringCloud 基础架构搭建
  13. 志高显示df什么意思_志高空调故障代码df是什么意思?
  14. Python+scrcpy+pyminitouch实现自动化(四)——实现语音识别自动打卡机器人
  15. 【ASP.NET Core】配置应用程序地址的N多种方法
  16. Kali 2021 设置中文输入法
  17. java vips 算法_VIPS:基于视觉的Web页面分页算法[转]
  18. mysql 更改密码
  19. QT-qrc资源管理
  20. 让U盘变成密码启动锁方法

热门文章

  1. java 日志技术_java 日志技术汇总(log4j , Commons-logging,.....)
  2. ideahtml里面没有提示_抖音上爆火的苹果充电提示音,安卓手机也可以设置了!!...
  3. android tablet gps antenna,A Novel Tri-band GPS/WLAN Antenna for Tablet with Full Metal Housing
  4. java的gc策略_Java的GC与内存分配策略
  5. java同步list_Java集合--ArrayList出现同步问题的原因
  6. python用于数据处理真的那么强大嘛_为什么有那么多人选择Python,真的有那么好吗?...
  7. 计算机辅助管理与制造,计算机辅助设计与制造,对产品的设备进行管理,完成产品加工制造...
  8. linux php mysql 中文_Linux下PHP+MySQL+CoreSeek中文检索引擎配置 | 系统运维
  9. 使用spring 配置数据源,并用数据源得到连接,操作sql
  10. qt android 网络编程实例,QT网络编程Tcp下C/S架构的即时通信实例