Python3

python3.3から入った__qualname__を使ってみる(前回の続き)

今回も前回のネタを引っ張ります。前回のvalidate_methodデコレータの問題点として継承して定義したクラスに使用すると継承元のメソッドまでチェックしてしまいうまく動きません。標準モジュールのクラスやサードパーティ製モジュールのクラスを継承すること…

python3の例外のfromキーワード(前回の続き)

前回の反省を踏まえて書き直しました。 #!/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…

python3の関数アノテーションを試してみました

ネタ的には今更なんですけど、よくわかっていなかったので試してみました。 予め言っておきますと初歩的な内容なので期待しないで下さい。引数の情報を取得する為に http://docs.python.org/3.2/library/inspect.html#inspect.getfullargspec や http://code…