python类[]函数

时间:2010-09-09 22:22:00

标签: python

我最近从ruby转移到python,在ruby中你可以创建self [nth]方法,我将如何在python中执行此操作?

换句话说,你可以这样做

a = myclass.new
n = 0
a[n] = 'foo'
p a[n]  >> 'foo'

2 个答案:

答案 0 :(得分:6)

欢迎来到光明的一面; - )

看起来你的意思是__getitem__(self, key)。和__setitem__(self, key, value)

尝试:

class my_class(object):

    def __getitem__(self, key):
        return some_value_based_upon(key) #You decide the implementation here!

    def __setitem__(self, key, value):
        return store_based_upon(key, value) #You decide the implementation here!


i = my_class()
i[69] = 'foo'
print i[69]

更新(评论后):

如果您希望使用元组作为密钥,您可以考虑使用dict,它具有内置的所有这些功能,即:

>>> a = {}
>>> n = 0, 1, 2
>>> a[n] = 'foo'
>>> print a[n]
foo

答案 1 :(得分:2)

您使用__getitem__