arrays - Python3 | 课程 | 面向对象
问题描述
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]
]
如果我想访问10
我的变量a_list
. 我打字a_list[2][1]
我在这里想要做的是......
我创建了一个实例,即Foo(a_list)
并将其保存在一个变量n
中。所以,n = Foo(a_list)
是我输入的。现在,如果我再次想访问10
. 我当然可以通过n.lst[2][1]
我的问题是,无论如何我可以通过以下方式做同样的事情:n[2][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 列表也是如此。
推荐阅读
- python - in python hdfs Is there a way to use wildcard or regex in the list method?
- ibm-cloud - 在 IBM 云中创建工具链时如何修复“未找到组织或空间”错误?
- python - Python按数字顺序列出文件夹列表
- azure-stream-analytics - 在流分析中使用来自 sql 数据库的参考数据
- shell - Shell-将文件写入shell变量
- visual-studio - 如何在 Windows 上的 Azure DevOps 中使用符号链接(Visual Studio 2019 团队资源管理器)
- bash - ZSH:找不到命令 - 将 macOS 更新到 10.15.1 后
- php - 如何在 Laravel 命令而不是控制器中发送电子邮件
- swift - 如何在 Swift 5 中的 AWS-SES 上创建 RAW-Email-Message
- c# - net framework 4.6.1 无参数构造函数中依赖注入的配置问题