一分钟学会python的__setitem__方法

本文深入解析Python中的__setitem__和__getitem__魔法方法,通过实例演示如何使自定义类支持键值对存储,实现类似字典的操作。了解这些方法能帮助开发者更灵活地操控数据。
该文章已生成可运行项目,

在python中__setitem__(self,value,key)方法时python魔法方法的一种,这个方法会让类按照一定的方法存储和key映射的value。该值可以使用另一种魔法方法__getitem__(self,key)来获取。

使用场景:当期望定义的类具备按照键存储值时,即类能够执行data['key']=value

目的:如果给类定义了__setitem__方法,则可以方便的给类进行赋值。

class Fib():                  #定义类Fib
    def __init__(self):
        self.changed={}         #给类一个字典属性,方便后续的存储
    def __getitem__(self, key): #定性__getitem__函数,key为类Fib的键
        return self.changed[key] #当按照键取值时,返回的值为changed[key]的值
    def __setitem__(self,key,value):
        self.changed[key]=value  #当赋值时,直接将value映射到键key上
s=Fib()
s[1]=4  #可以直接给键1赋值为4
s[1]   #返回值4,该返回时执行__getitem__的结果

如果不给类Fib()定义 __setitem__方法,则会无法通直接给键赋值

class Fib():                  #定义类Fib
    def __init__(self):
        self.changed={}         #给类一个字典属性,方便后续的存储
    def __getitem__(self, key): #定性__getitem__函数,key为类Fib的键
        return self.changed[key] #当按照键取值时,返回的值为changed[key]的值

s=Fib()
s[1]=4  #可以直接给键1赋值为4

#返回  TypeError: 'Fib' object does not support item assignment

这种方法可以让使用者非常方便的做赋值操作,我们经常使用列表和字典,都有该方法。

原创不易,如果对你有帮助,动动小手点个赞!

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北.海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值