Python对象作为字典值

Bla*_*543 6 python

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

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
Run Code Online (Sandbox Code Playgroud)

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

>>>print dict['foo'].getValue()
<bound method object.getValue of <__main__.object instance at 0xFOOBAR000 >>
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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

use*_*342 11

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

dict['foo'].getValue()
Run Code Online (Sandbox Code Playgroud)

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

def getValue(self):
    return self.value
Run Code Online (Sandbox Code Playgroud)

最后,在Python中不鼓励编程风格,其中每个属性都伴随着"getter".这是很容易实现计算出的时隙,所以没有必要干将.

名称,如dictobject也非常沮丧,因为他们有冲突的内置类型相同的名称.

编辑
的代码是在同时编辑,渲染一些过时上述表示的.发布的代码的最新版本在粘贴到Python时似乎工作得很好.

  • @Blackninja543:您需要复制并粘贴代码。如果你“速记”它并且你的“速记”给出了不同的错误,那么没有人可以帮助你。要了解您正在使用的代码中有什么问题,我们必须查看您正在使用的实际代码。您粘贴的代码存在语法错误,因为您使用“//”而不是“#”作为注释。 (2认同)