19章横断的関心――アスペクト指向Aspects

制約

  • 問題は何らかの抽象化(手続き、関数、オブジェクトなど)を使用して分解される。
  • 問題のアスペクトは、抽象化のソースコードや抽象化を使用する場所を変更することなく、プログラムに追加される。
  • 抽象化とアスペクトは外部結合機構を用いて結合される。

プログラム

 1 #!/usr/bin/env python
 2 import sys, re, operator, string, time
 3
 4 #
 5 # 関数定義
 6 #
 7 def extract_words(path_to_file):
 8     with open(path_to_file) as f:
 9         str_data = f.read()
10     pattern = re.compile(r'[\W_]+')
11     word_list = pattern.sub(' ', str_data).lower().split()
12     with open('../stop_words.txt') as f:
13         stop_words = f.read().split(',')
14     stop_words.extend(list(string.ascii_lowercase))
15     return [w for w in word_list if w not in stop_words]
16
17 def frequencies(word_list): ...

Get プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.