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