方法中的self[]是什么意思?

5

在阅读一个Python程序时,我曾经发现一个函数以以下方式使用self

class Auto(object):
   _biases_str = "biases{0}"

   def _b(self, n, suffix=""):
     name_b_out = self._biases_str.format(i + 1) + "_out"
     return `self[self._biases_str.format(n) + suffix]`

name_b_out = self._biases_str.format(i + 1) + "_out" 这一行在我看来很正常,也就是说我们总是使用 self. 来定义某些东西。但是我对 self[self._biases_str.format(n) + suffix] 的用法不是很清楚。具体而言,这里的 self[] 是什么意思,或者它是做什么的?


3
\反引号`` 也应该在那里吗? - Antti Haapala -- Слава Україні
1个回答

10

这并不意味着除了variable[something]所代表的含义之外还有其他含义。在 Python 中,表达式variable[something]会调用variable.__getitem__(something),而在 Python 中,self是当前对象或接收器的惯用命名方式,因此self[self._biases_str.format(n) + suffix]self.__getitem__(self._biases_str.format(n) + suffix)基本上是相同的意思。

我猜这个类也定义了一个名为__getitem__的方法。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接