魔术方法__getitem__

简介: 魔术方法__getitem__

Python中的魔术方法_getitem_

python中有许多的魔术方法,下文主要对_getitem_()进行介绍。__

在python中_getitem_(self, key):方法被称为魔法方法,这个方法返回所给键对应的值。

  1. 当对象是序列时,键是整数。当对象是映射时(字典),键是任意值
  2. 在定义类时,如果希望能按照键取类的值,则需要定义__getitem__方法
  3. 如果给类定义了_getitem__方法,则当按照键取值时,可以直接返回
    __getitem__方法执行的结果
class test_getitem():
    def __init__(self):
        self.num1 = 50
    # 定义__getitem__(),key为test_getitem的键
    def __getitem__(self, key):
        num2 = self.num1 + key
        return num2
test = test_getitem()
print(test[100])    # 150

对比

class test_getitem():
    def __init__(self):
        self.num1 = 50
    # 定义__getitem__(),key为test_getitem的键
    # def __getitem__(self, key):
    #     num2 = self.num1 + key
    #     return num2
test = test_getitem()
print(test[100])    # TypeError: 'test_getitem' object does not support indexing
相关文章
|
3月前
|
缓存 Ubuntu 前端开发
yum的安装和使用(包含安装过程中遇到的问题及解决方法)
yum的安装和使用(包含安装过程中遇到的问题及解决方法)
572 1
yum的安装和使用(包含安装过程中遇到的问题及解决方法)
|
运维 JavaScript CDN
10个国内外jQuery的CDN性能大比拼
10个国内外jQuery的CDN性能大比拼
10个国内外jQuery的CDN性能大比拼
|
10月前
|
SQL 关系型数据库 MySQL
阿里面试:1000万级大表, 如何 加索引?
45岁老架构师尼恩在其读者交流群中分享了如何在生产环境中给大表加索引的方法。文章详细介绍了两种索引构建方式:在线模式(Online DDL)和离线模式(Offline DDL),并深入探讨了 MySQL 5.6.7 之前的“影子策略”和 pt-online-schema-change 方案,以及 MySQL 5.6.7 之后的内部 Online DDL 特性。通过这些方法,可以有效地减少 DDL 操作对业务的影响,确保数据的一致性和完整性。尼恩还提供了大量面试题和解决方案,帮助读者在面试中充分展示技术实力。
|
网络协议 安全 网络安全
软考中级之数据库系统工程师笔记总结(五)网络基础
软考中级之数据库系统工程师笔记总结(五)网络基础
160 0
|
存储 算法 C语言
STL标准模板库《实战案例汇总》
STL标准模板库《实战案例汇总》
179 1
|
Python
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存
【5月更文挑战第12天】在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存在,该函数对路径进行检查,存在则返回True,不存在则返回False。示例代码展示了如何检查'example.txt'文件是否存在并相应打印消息。此外,`os.path.isfile()`用于确认路径是否为文件,仅当是文件时返回True,否则返回False,同样配以示例说明其用法。
742 2
|
弹性计算 安全 关系型数据库
rds安全组规则
云数据库RDS的安全组规则是虚拟防火墙,用于控制网络访问权限,确保数据库安全。配置要点包括:指定RDS实例的安全组,设定入方向规则(如源IP、协议和端口),考虑默认规则的开放程度。根据场景,同组内外的ECS实例需不同配置。管理员应合理规划规则,确保业务需求与安全性平衡,并定期审计更新。
310 3
|
存储 SQL Oracle
oracle Job 定时任务
oracle Job 定时任务
|
JSON 数据处理 Swift
【Swift 开发专栏】Swift 中的网络编程:URLSession 与 Alamofire
【4月更文挑战第30天】本文探讨了Swift中的网络编程,重点关注URLSession和Alamofire。URLSession是苹果提供的网络请求框架,允许底层控制和定制,适合需要高度灵活性的场景。Alamofire则是在URLSession基础上的第三方库,提供简洁接口和功能扩展,简化网络请求和错误处理。文中还介绍了两者在实际应用中的选择和使用场景,强调掌握网络编程基础的重要性。
269 0
|
算法 安全 Java
MD5 - 加密算法简要介绍与JAVA实现
MD5 - 加密算法简要介绍与JAVA实现
315 1