所以我有以下代码,其中字典的值是一个对象,该对象的关键是对象中的一个项目:
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".这是很容易实现计算出的时隙,所以没有必要干将.
名称,如dict和object也非常沮丧,因为他们有冲突的内置类型相同的名称.
编辑
的代码是在同时编辑,渲染一些过时上述表示的.发布的代码的最新版本在粘贴到Python时似乎工作得很好.
| 归档时间: |
|
| 查看次数: |
37147 次 |
| 最近记录: |