首页 > 其他分享 >魔术方法__getitem__

魔术方法__getitem__

时间:2023-08-27 21:56:15浏览次数:34  
标签:__ getitem self 魔术 key test 方法

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

标签:__,getitem,self,魔术,key,test,方法
From: https://www.cnblogs.com/codingbao/p/17660946.html

相关文章

  • Nginx
    目录Nginx编译安装nginx分割日志优雅退出飞行升级回滚配置详细解释修改worker数量关闭版本或修改版本mimeserver下的rootserver块构建虚拟主机实际只有一台好像很多主机alias别名location404自定义图标Nginx编译安装nginx[root@localhost/]#cddata#进入到data目录,把nginx......
  • Dockerfile完全指南_构建镜像
    简单示例在一个空白的文本文件,命名为DockerfilevimDockerfile示例1Dockerfile文件内容:#基础镜像FROMcentos#维护者MAINTAINERbaizhan<[email protected]>#运行命令RUN"yuminstallwget"#启动容器运行命令CMDecho"helloDockerfile"示例2Dockerf......
  • VirtualCamera虚拟相机实时视频使用教程
    VirtualCamera虚拟相机实时视频使用教程简介说明VirtualCamera虚拟相机实时视频主要用于直播平台带货直播,无人直播,视频通话等场景,视频时长不限,大小不限,高清实时替换,可动态调节快慢。注意,使用过程中视频声音是无法发送过去的,声音来着外部接收,就如我们视频通话时一样,声音来自外部。......
  • vim基础笔记
    1.vim基础知识(1)在normal模式下h向左l向右j向下k向上可以在hjkl前输入数字移动指定行数例如3j就是向下移动三行,4k就是向上移动四行w代表向右移动一个单词b代表向左移动一个单词同样可以在w和b前加入数字$代表移动到本行最后^代表移动到本行最前>向右缩进<向左缩进0......
  • C++—函数
    6函数6.1概述作用:将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。6.2函数的定义函数的定义一般主要有5个步骤:1、返回值类型2、函数名3、参数表列4、函数体语句5、return表达式语法:返回值类型函数名(参数列......
  • 数组章节的进阶54. 螺旋矩阵
    54. 螺旋矩阵1classSolution:2defspiralOrder(self,matrix:List[List[int]])->List[int]:3m,n=len(matrix),len(matrix[0])4res=[]#存放遍历后的结果5startx=starty=067foroffsetinrange(min(m,......
  • Linux将执行命令结果输出到文本文件
    参考1参考2Linux将执行命令结果输出到文本文件一、把命令运行的结果保存到文件当中:用>把输出转向就可以了例子:$ls>ls.txt#或者ls-->ls.txt#把ls命令的运行结果保存到文件ls.txt中说明:'>'是把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容......
  • 如何修改min.js或者压缩后的js,以便提高代码的可读性。
    前端的js上线的时候一般会使用打包工具处理(webpack,gulp,ugly.js等)。这样做有几点作用。可以压缩空间,提高页面响应速度一定程度上可以保护自己的代码安全,防止别人清晰看懂逻辑或者拷贝代码。提高别人阅读自己代码的门槛可前端开发工作中多多少少,会需要看别人的js代码。可随......
  • Spring Boot集成Mybatis-plus+hive
    运行环境jdk1.8springboot:2.7.151.在pom.xml文件中加入<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version>......
  • 外地老人可以在京办老年卡吗
    需要满足60岁以上并且有北京市居住证,带上居住证和一寸白底照,到北京农商银行申请办理就可以了,具体如下:根据《北京通—养老助残卡管理办法(暂行)》第四条办理北京通—养老助残卡的条件为具有本市户籍的60周岁及以上的老年人和在本市行政区域内办理《居住证》的60周岁及以上的外埠老......