方括号在Python中应用于"self"

use*_*973 4 python nlp

我遇到过一些代码,其中方括号用于"自我".我不熟悉这种符号,因为我试图理解我不是由我编写的源代码,所以很难理解这里处理的是什么类型的对象.

我遇到的例子是在自然语言工具包为Python 这里.如果你ctrl-F,你可以找到我的意思的例子self[context].

如果没有更多的上下文,可能无法确切地说明它是如何被使用的,但这里有一个示例片段:

context = tuple(context)
if (context + (word,) in self._ngrams) or (self._n == 1):
     return self[context].prob(word)
else:
     return self._alpha(context) * self._backoff.prob(word, context[1:])
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 6

方括号是python说"调用__getitem__(或__setitem__)方法"的方式.

x = a[...]  #call a.__getitem__(...)
a[...] = x  #call a.__setitem__(...)
del a[...]  #call a.__delitem__(...)
Run Code Online (Sandbox Code Playgroud)

在你的情况下,self和之间没有什么不同a.事实上,self在一个类的方法中根本没什么特别的.传递给方法的第一个参数是类的实例,但您可以根据需要调用该参数. self只是一个(非常强烈推荐)的公约.