当使用类实例的索引引用时,调用什么方法?

2024-09-30 20:38:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Raspbian上使用Python3.7。我是Python新手,所以请不要

example program中,导入一个模块from adafruit_ht16k33 import segments

segments.py中定义了一个类: class Seg14x4(HT16K33):

在下面,我使用的类是继承的:class Seg7x4(Seg14x4):

在这些类的example program中,对象display从这个类实例化:display = segments.Seg7x4(i2c)

Seg14x4类有一个方法print,在下面的示例程序中使用:display.print(42)

我理解这个object.method(parameter)类型的语法。 我可以在Seg14x4类中找到print方法的定义:def print(self, value):

然而,我使用的示例程序也显示了使用如下索引语法调用的类:display[3] = 'B'

我试图理解在使用display[3] = 'B'语法时调用什么方法。我在类定义中没有看到类似“default方法”的东西(尽管这可能不是Python的正确术语)。我读了docs.python.org/3.3/tutorial/classes.html,没有看到任何括号内的索引语法示例。 在决定执行哪个方法时,类如何处理像display[6]这样的索引参数


Tags: 方法程序示例定义exampledisplay语法program
1条回答
网友
1楼 · 发布于 2024-09-30 20:38:15
display[x] = y

…变成了

display.__setitem__(x, y)

同样地

display[x]

…变成了

display.__getitem__(x)

您可以找到这些“特殊方法”名称的列表here。通过在类中实现这些特殊方法,可以使自定义对象的行为更像本机python对象,这些对象可以使用操作符和语法(如索引)进行操作

相关问题 更多 >