24章意図の宣言――型注釈Declared Intentions
制約
- 型を強制する仕組みが存在する。
- 手続きや関数は、期待する引数の型を宣言する。
- 呼び出し側が期待しない型の引数を渡した場合、型エラーが発生し、手続きや関数は実行されない。
プログラム
1 #!/usr/bin/env python 2 import sys, re, operator, string, inspect 3 4 # 5 # メソッド呼び出しで引数の型を強制するためのデコレータ 6 # 7 class AcceptTypes: 8 def __init__(self, *args): 9 self._args = args 10 11 def __call__(self, f): 12 def wrapped_f(*args): 13 for i in range(len(self._args)): 14 if type(args[i]) != self._args[i]: 15 raise TypeError( f"Expecting {self._args[i]} got {type(args[i])}") 16 return f(*args) 17 return wrapped_f 18 # 19 # 関数定義 20 # 21 @AcceptTypes(str) 22 def extract_words(path_to_file): 23 with open(path_to_file) ...
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.