Python3
今回も前回のネタを引っ張ります。前回のvalidate_methodデコレータの問題点として継承して定義したクラスに使用すると継承元のメソッドまでチェックしてしまいうまく動きません。標準モジュールのクラスやサードパーティ製モジュールのクラスを継承すること…
前回の反省を踏まえて書き直しました。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 関数の引数型を検証します。 """ from functools import wraps from inspect import getfullargspec, getmembers, isfunction class ArgumentError(Exception): d…
前回のやり方だと関数一つ一つにデコレータいちいち付けてらんねぇよってなるので多少楽になるようにしてみます。 と言ってもクラスのメソッドのみです。まず前回用意したtest.pyのvalidate関数に追記します。 argSpec = getfullargspec(func) + if "self" i…
ネタ的には今更なんですけど、よくわかっていなかったので試してみました。 予め言っておきますと初歩的な内容なので期待しないで下さい。引数の情報を取得する為に http://docs.python.org/3.2/library/inspect.html#inspect.getfullargspec や http://code…