魔术方法__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
相关文章
映射setattr,getattr,delattr合集
映射setattr,getattr,delattr合集
|
4月前
|
Python
魔术方法 __call__
【6月更文挑战第28天】
26 0
|
4月前
|
JavaScript 前端开发
hasOwnProperty() 方法详解
hasOwnProperty() 方法详解
|
5月前
|
JavaScript 前端开发
Symbol有哪些常用的内置方法
Symbol有哪些常用的内置方法
|
5月前
|
前端开发 JavaScript 安全
探索 hasOwnProperty:处理对象属性的关键(下)
探索 hasOwnProperty:处理对象属性的关键(下)
探索 hasOwnProperty:处理对象属性的关键(下)
|
5月前
|
前端开发 JavaScript
探索 hasOwnProperty:处理对象属性的关键(上)
探索 hasOwnProperty:处理对象属性的关键(上)
探索 hasOwnProperty:处理对象属性的关键(上)
|
Python
如何正确理解@classmethod与@staticmethod
如何正确理解@classmethod与@staticmethod
111 0
如何正确理解@classmethod与@staticmethod
|
存储 索引 Python
Python函数是所谓的第一类对象(First-Class Object)是什么鬼?
之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它语言。
144 0
|
存储 设计模式 JavaScript
对象方法和方法中的 "this"
对象方法和方法中的 "this"
122 0
对象方法和方法中的 "this"
|
Python
Python编程:getattribute和getattr访问对象属性顺序
Python编程:getattribute和getattr访问对象属性顺序
144 0