23章受動的攻撃――例外Passive Aggressive

制約

  • すべての手続きや関数は引数の正当性を確認し、引数が不都合な場合は処理を継続せずに関数から抜け出す。
  • 他の関数を呼び出す際、意味のある対応ができる立場にある場合にのみエラーを確認する。
  • 例外処理は、関数呼び出し連鎖の上位かつ意味のある場所であればどこででも行う。

プログラム

 1 #!/usr/bin/env python
 2 import sys, re, operator, string
 3
 4 #
 5 # 関数定義
 6 #
 7 def extract_words(path_to_file):
 8     assert(type(path_to_file) is str), "I need a string! I quit!"
 9     assert(path_to_file), "I need a non-empty string! I quit!"
10
11     with open(path_to_file) as f:
12         data = f.read()
13     pattern = re.compile(r'[\W_]+')
14     word_list = pattern.sub(' ', data).lower().split()
15     return word_list
16
17 def remove_stop_words(word_list):
18 assert(type(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.