魔术方法__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
相关文章
|
2月前
解密 __getattr__ 和 __getattribute__ 的用法与区别
解密 __getattr__ 和 __getattribute__ 的用法与区别
31 2
映射setattr,getattr,delattr合集
映射setattr,getattr,delattr合集
|
6月前
|
Python
魔术方法 __call__
【6月更文挑战第28天】
44 0
|
7月前
|
存储 Python
Python函数参数传递
Python函数参数传递
67 1
|
6月前
|
JavaScript 前端开发
hasOwnProperty() 方法详解
hasOwnProperty() 方法详解
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
63 0
|
索引 Python
什么是魔术方法(magic methods)
什么是魔术方法(magic methods)
217 0
|
数据采集 缓存 NoSQL
一日一技:使用装饰器实现类属性的懒加载
一日一技:使用装饰器实现类属性的懒加载
109 0
|
测试技术 Python
Python - 面向对象编程 - 反射 hasattr、getattr、setattr、delattr (下)
Python - 面向对象编程 - 反射 hasattr、getattr、setattr、delattr (下)
159 0
Python - 面向对象编程 - 反射 hasattr、getattr、setattr、delattr (下)
|
JavaScript 前端开发
js函数与原型链
js函数与原型链