赞
踩
所以我有以下代码,其中字典的值是一个对象,该对象的关键是对象中的一个项目:
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。