这是什么约定?
class IndexedText(object):
def __init__(self, stemmer, text):
self._text = text
self._stemmer = stemmer
self._index = nltk.Index((self._stem(word), i) for (i, word) in enumerate(text))
_
表示这些是私有成员。它并没有被语言强制执行,因为 Python 程序员都是“自愿的成年人”。
这意味着“仅限内部使用”(类似于其他语言中的“私有”),但不像其他语言那样受到限制。
这是一种约定,规定类/对象的客户端应尽可能避免使用这些属性,因为它们是用于内部使用的。
这只是意味着那些属性仅供内部使用,如果可能的话,请不要触碰它们。
假设您正在编辑一些现有代码,并且看到带有下划线的变量。这意味着您不应该编辑它们。只是一个警告。
所以
self.name = a
self._name =a
self.__name=a
都是一样的