python类[]函数

python类[]函数,python,Python,我最近从ruby迁移到python,在ruby中,您可以创建self[n]方法,我在python中如何做到这一点 换句话说,你可以这样做 a = myclass.new n = 0 a[n] = 'foo' p a[n] >> 'foo' 您可以使用。欢迎来到光明面;-) 看起来你是说。和 尝试: 更新(以下评论): 如果您希望使用元组作为您的密钥,您可以考虑使用 DICT,它具有内置的所有功能,即: 你能描述一下Ruby中的self[nth]是什么意思吗?这个方法能支持多维度吗

我最近从ruby迁移到python,在ruby中,您可以创建self[n]方法,我在python中如何做到这一点

换句话说,你可以这样做

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

您可以使用。

欢迎来到光明面;-)

看起来你是说。和

尝试:

更新(以下评论):

如果您希望使用元组作为您的密钥,您可以考虑使用<代码> DICT<代码>,它具有内置的所有功能,即:


你能描述一下Ruby中的
self[nth]
是什么意思吗?这个方法能支持多维度吗?ie.i[0][3][2]假设
i[0]
i[0][3]
返回的对象实现
\uuuu getitem\uuuuuu()
[用于获取]和
\uuuu setitem\uuuuuuuuuuuu()
[用于设置],是的。如果调用了i[0,1,2]键会是一个管吗?在这种情况下,(0,1,2)作为元组将是键。您也可以考虑使用<代码> DICT<代码>:A= {};a[n]=“foo”;打印一个[n];还值得指出的是,您可以将切片传递给
\uu getitem\uuu
,因此
i[1:3:5]
切片(1,3,5)
作为键传递进来。
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]
>>> a = {}
>>> n = 0, 1, 2
>>> a[n] = 'foo'
>>> print a[n]
foo