【问题标题】:Python3 | classes | OOPPython3 |课程 |面向对象
【发布时间】:2021-10-09 09:09:30
【问题描述】:
class Foo:
    """
    class to represent 2D arrays
    """
    def __init__(self, lst: list[list]) -> None:
        self.lst = lst

a_list = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 100]
]

如果我想访问变量a_list 中的10。 我输入a_list[2][1]

我在这里要做的是......

我创建了一个实例,即Foo(a_list),并将其保存在变量n 中。 所以,n = Foo(a_list) 是我输入的。 现在,如果我想再次访问10。我当然可以通过n.lst[2][1]访问它

我的问题是,我是否可以通过以下方式做同样的事情:n[2][1]

【问题讨论】:

    标签: arrays python-3.x list class oop


    【解决方案1】:

    这可以使用__getitem__ 方法来完成。类似的东西

    class Foo:
        """
        class to represent 2D arrays
        """
        def __init__(self, lst: list[list]) -> None:
            self.lst = lst
    
        def __getitem__(self, idx):
            return self.lst[idx]
    

    对于您的示例,n[2] 返回一个列表,因此 n[2][1] 正在索引到一个“普通”python 列表。

    【讨论】:

      猜你喜欢
      • 2019-02-25
      • 2010-09-18
      • 2015-04-28
      • 2011-07-09
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多