鱼C论坛

 找回密码
 立即注册
查看: 2977|回复: 5

[已解决]课47定制序列

[复制链接]
发表于 2022-3-28 13:47:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 plovelove 于 2022-3-28 13:51 编辑

问题接地气,c1.__getitem__(1) 这个我可以理解,类的实例化对象c1 调用类的函数(方法) ,访问key值为1的列表位置对应的值
①c1[1]这个是什么,我昨天理解了代码(注释的地方理解有问题大家也可以给我说下哈),今天运行了代码,然后去调用实现,实例化对象之后硬是没有想到怎么访问,然后就去翻资料什么的(发现都不知道怎么搜),然后就看视频调用,发现这个c1[1],哪位老板可以给解释下,这个写法是怎么冒出来的,什么理解
②其次我想反推,如何证明c1是个列表类型,因为只有列表才可以c1[1]吧
最佳答案
2022-3-28 13:57:14
魔法方法之所以被称为魔法方法,

它跟普通方法的不同就是解释器会根据对象的行为去自动调用,

而不需要你显式调用,c1.__getitem__(1) 这种方式就是显式调用,

c1[1] 这样方式其实就是去隐式调用 __getitem__(由解释器自动去调用),

并不是列表才可以用 c1[1] 这种方式,只要是实现了 __getitem__ 方法的对象都可以
微信截图_20220328134046.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-28 13:57:14 | 显示全部楼层    本楼为最佳答案   
魔法方法之所以被称为魔法方法,

它跟普通方法的不同就是解释器会根据对象的行为去自动调用,

而不需要你显式调用,c1.__getitem__(1) 这种方式就是显式调用,

c1[1] 这样方式其实就是去隐式调用 __getitem__(由解释器自动去调用),

并不是列表才可以用 c1[1] 这种方式,只要是实现了 __getitem__ 方法的对象都可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-28 14:02:00 | 显示全部楼层
isdkz 发表于 2022-3-28 13:57
魔法方法之所以被称为魔法方法,

它跟普通方法的不同就是解释器会根据对象的行为去自动调用,

的确是我钻牛角尖了,看了下书,含义中的确是写明了调用__getitem__(self,key)方法相当于self[key]
魔法方法果然有点门道
老板的解释牛皮啊~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 14:07:48 | 显示全部楼层
plovelove 发表于 2022-3-28 14:02
的确是我钻牛角尖了,看了下书,含义中的确是写明了调用__getitem__(self,key)方法相当于self[key]
魔法 ...

python除了丰富的库外,魔法方法也是 python 的一大亮点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-28 17:06:53 | 显示全部楼层
isdkz 发表于 2022-3-28 14:07
python除了丰富的库外,魔法方法也是 python 的一大亮点

好像感受到一些它的魅力了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 19:31:20 | 显示全部楼层
本帖最后由 isdkz 于 2022-3-28 19:33 编辑
plovelove 发表于 2022-3-28 17:06
好像感受到一些它的魅力了


你想知道哪个魔法方法跟什么对象行为有关的,可以用 help 查看

>>> help(list.__getitem__)
Help on method_descriptor:

__getitem__(...)
    x.__getitem__(y) <==> x[y]

>>> help(str.__str__)
Help on wrapper_descriptor:

__str__(self, /)
    Return str(self).

>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 02:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表