所以我有以下代码,其中字典的值是一个对象,该对象的关键是对象中的一个项目:

class MyObject():

def getName(self):

return self.name

def getValue(self):

return self.value

def __init__(self,name, value):

self.name = name

self.value = value

dict = {}

object = MyObject('foo', 2) //foo is the name, 2 is the value

dict[object.getName()] = object

但是我无法像这样访问对象:

>>>print dict['foo'].getValue()

>

有没有办法以这种方式访问​​对象?

编辑:

我不知道为什么,但我的代码最终决定开始工作,所以对于任何有类似问题的人,上述代码是有效的,应该可以工作.我当前的Python版本是2.7.3

解决方法:

在调用函数时总是需要包括括号,所以写:

dict['foo'].getValue()

此外,getValue方法应该接受一个self参数并通过它访问实例属性:

def getValue(self):

return self.value

最后,在Python中不鼓励编程风格,其中每个属性都伴随着“getter”.实现计算的插槽是easy enough,因此不需要getter.

诸如dict和object之类的名称也非常不鼓励,因为它们与同名的built-in types冲突.

编辑

在此期间编辑了代码,使上述一些评论过时了.发布的代码的最新版本在粘贴到Python时似乎工作得很好.

标签:python

来源: https://codeday.me/bug/20191008/1870612.html

python中字典的value可以为任意对象_Python对象作为字典值相关推荐

  1. python中的for语句可以在任意序列_python在循环内任意增加迭代器

    python在循环内任意增加迭代器 我可能会以错误的方式处理此问题,但我想知道如何在python中处理此问题. 首先一些C代码: int i; for(i=0;i<100;i++){ if(i ...

  2. python中0和1可以表示真假吗_python 对象真假值的实例(哪些视为False)

    对于python语言的True和False我们并不陌生了,在学习的过程中常会遇到这样的返回值,那么True真和False假的具体含义是什么? 本文就为大家来说说python中真假的含义. 真和假的概念 ...

  3. python中集合的元素可以是任意数据类型_Python数据类型之列表

    列表 列表是由一系列按特定循序排列的元素组成(即有序集合).使用中括号[]来表示,并用逗号来分隔其中的元素. 列表的元素可以是任意类型. list 列表(序列)中的每个元素都分配一个数字索引,从 0 ...

  4. python中集合的元素可以是任意数据类型_Python之基本数据类型——集合数据类型...

    集合set(可变的数据类型): 数据结构以大括号{}表示,各元素逗号隔开,例:{1,2,3,4}. 集合特征:无序,元素不重复 创建集合: s={1,2,3} pirnt(s) #---------- ...

  5. python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)

    python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录

  6. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)

    Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名) 目录

  7. Python 之 sorted()排序详解 适用于任意可迭代对象比如列表,字典等

    详细解释一下函数sorted的具体用法: 对字典: 1 >>> a = {3: '三', 5: '五', 8: '八', 1: '一'} 2 >>> b = sor ...

  8. python中不能使用下标运算的有哪些_Python中最常见的10个问题(列表)

    列表是Python中使用最多的一种数据结果,如何高效操作列表是提高代码运行效率的关键,这篇文章列出了10个常用的列表操作,希望对你有帮助. 注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮 ...

  9. python中shelf对象_Python对象持久化存储工具pickle

    Python 中有个序列化过程称为pickle,它能够实现任意对象与文本之间的相互转化,也可以实现任意对象与二进制之间的相互转化.也就是说,pickle 可以实现 Python 对象的存储及恢复. 序 ...

最新文章

  1. J-Link驱动下载和JLINK下载Hex程序
  2. mysql spj_解决Electron启动出现短暂的白屏 - SegmentFault 思否
  3. c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...
  4. spark在服务器运行示例_创建示例HTTPS服务器以获取乐趣和收益
  5. 报名通道开启 | 顶会 ICLR 2021:医疗对话生成与自动诊断国际竞赛,邀你来战!...
  6. .Net Core Nlog日志记录到MySql
  7. C++20 系列(一)- Hello C++20
  8. 一篇文章带你快速入门JavaScript(自学者福利)
  9. 电脑双系统--我想体验不一样的感觉
  10. 【值得读】大神周志华谈AI的三大挑战:开放环境、弱监督、新型深度模型(非可微)...
  11. 一个简单LEGv8处理器的Verilog实现【二】【指令相关基础知识与实验分析】
  12. zk - zookeeper实现配置中心
  13. 创业公司该如何设计激励员工的期权池
  14. Android快速开发之appBase——(1).appBase介绍
  15. 计算机管理 合并分区,硬盘分区进行合并 硬盘分区后怎么合并
  16. 京东被优衣库打脸,阿里:怪我咯?
  17. 学习仿今日头条疫情地图+用户画像(echarts)
  18. 二叉树节点和度的关系及特点
  19. 如何在eclipse中找到或者更改自己的workspace
  20. 安全审计平台Wazuh架构及功能概览

热门文章

  1. rk3399在linux机上烧写img,烧写固件 — TB-96AI documentation
  2. 编写linux下跑马灯应用程序,01 arm11 led 跑马灯程序
  3. geany怎么创建文件夹_教程详情|Geany怎么使用,Geany安装使用教程_234游戏网
  4. 数据中心防雷SPD技术漫谈
  5. POJO、JavaBean、DAO
  6. Redis主从复制配置
  7. {} 与 function() { } , 选用空对象{}来存放keyValue
  8. WinCE中命令行工具Viewbin简介(查看nk.bin中包含的文件)
  9. Git学习教程(六)Git日志
  10. 类执行方法的过程与运行时