18
列表类似的索引访问,我想能够访问使用数组的语法Python对象的一些值,即:在Python中实现
obj = MyClass()
zeroth = obj[0]
first = obj[1]
这可能吗?如果是这样,你如何在Python类中实现这个问题?
列表类似的索引访问,我想能够访问使用数组的语法Python对象的一些值,即:在Python中实现
obj = MyClass()
zeroth = obj[0]
first = obj[1]
这可能吗?如果是这样,你如何在Python类中实现这个问题?
您需要编写或覆盖__getitem__
,__setitem__
和__delitem__
。
因此,例如:
class MetaContainer():
def __delitem__(self, key):
self.__delattr__(key)
def __getitem__(self, key):
return self.__getattribute__(key)
def __setitem__(self, key, value):
self.__setattr__(key, value)
这是一个非常简单的类,允许其属性索引访问。
使用__getitem__
和__setitem__
方法。
class MyClass:
def __getitem__(self, key):
return some_value_related_to_key
def __setitem__(self, key, value):
# set value (if needed)
显然,对于那些使用Google,这被称为'索引'。 – PeterJCLaw
除非Python中的列表是这种方式(不知道 - 我很少使用它),也许你应该把索引而不是列表中的标题? –
@Merlyn,名单确实如此,等等。无论如何。 – PeterJCLaw