Python中有许多级别的__getitem__

时间:2015-06-05 18:09:39

标签: python arguments python-3.4

从另一个类中获取多个参数的用法是什么?我需要像 getitem ()这样的东西但是我只能得到1。

class Example(object):

    def __init__(self, ex1, ex2, ex3):
        self.ex1 = ex1
        self.ex2 = ex2
        self.ex3 = ex3
   #just example, this will not work
   def __getitem__(self, ex1, ex2, ex3):
   return self.ex1, self.ex2, self.ex3

2 个答案:

答案 0 :(得分:1)

Python将[...]的多个参数组合成一个元组:

class Example(object):

    def __init__(self, ex1, ex2, ex3):
        self.ex1 = ex1
        self.ex2 = ex2
        self.ex3 = ex3

    def __getitem__(self, index):
       ex1, ex2, ex3 = index
       return self.ex1, self.ex2, self.ex3

ex = Example(1,2,3)
print ex[1,2,3]

答案 1 :(得分:0)

你需要这样做。

A.__getitem__()返回另一个具有自己的B.__getitem__()的对象,其中返回C.__getitem()__。然后就可以了

b = a["1"]
c = b["2"]

相当于说

 c = a["1"]["2"]