非公開メソッドを定義する
レッスンでは、非公開メソッドを使ってクラスに機能を追加する方法を学びました。メソッドを非公開として定義することで、そのメソッドはパッケージ内部でのみ使用されるものであることをユーザーに示せます。
この演習では、クラスが単語をカウントする際に使用する非公開メソッドを定義しましょう。
この演習はコースの一部です
Python におけるソフトウェアエンジニアリングの原則
演習の手順
Counterモジュールのcollectionsと関数tokenize()は、あらかじめ環境に読み込まれています。count_wordsという名前のメソッドを 非公開メソッドとして追加してください。- 非公開メソッドに、
tokensを使ってCounter()属性の内容をカウントする機能を実装してください。 - 新しく作成した関数を
__init__メソッド内で活用してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
class Document:
def __init__(self, text):
self.text = text
# pre tokenize the document with non-public tokenize method
self.tokens = self._tokenize()
# pre tokenize the document with non-public count_words
self.word_counts = self.____()
def _tokenize(self):
return tokenize(self.text)
# non-public method to tally document's word counts with Counter
def ____(self):
return ____(____.tokens)