plovelove 发表于 2022-3-28 13:47:55

课47定制序列

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

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

isdkz 发表于 2022-3-28 13:57:14

魔法方法之所以被称为魔法方法,

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

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

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

并不是列表才可以用 c1 这种方式,只要是实现了 __getitem__ 方法的对象都可以

plovelove 发表于 2022-3-28 14:02:00

isdkz 发表于 2022-3-28 13:57
魔法方法之所以被称为魔法方法,

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


的确是我钻牛角尖了,看了下书,含义中的确是写明了调用__getitem__(self,key)方法相当于self
魔法方法果然有点门道
老板的解释牛皮啊~~~

isdkz 发表于 2022-3-28 14:07:48

plovelove 发表于 2022-3-28 14:02
的确是我钻牛角尖了,看了下书,含义中的确是写明了调用__getitem__(self,key)方法相当于self
魔法 ...

{:5_109:}python除了丰富的库外,魔法方法也是 python 的一大亮点

plovelove 发表于 2022-3-28 17:06:53

isdkz 发表于 2022-3-28 14:07
python除了丰富的库外,魔法方法也是 python 的一大亮点

好像感受到一些它的魅力了

isdkz 发表于 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

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

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

>>>
页: [1]
查看完整版本: 课47定制序列