0

重複の可能性:
関数の引数を確認するには?

おそらくこれは重複した質問です..申し訳ありません..

以下の例を見てみましょう。

class ClassA(object):
     pass
class ClassB(object):
     pass

def foo(a, b):
    if not isinstance(a, ClassA):
         raise ValueError("1st agrument should be instance of ClassA")
    if not isinstance(b, ClassB):
         raise ValueError("2nd agrument should be instance of ClassB")
    print(a)
    print(b)

__future__入力変数をチェックするメソッドに注釈を付けるために、2.7 pythonまたはモジュールに何か注釈がありますか?

それらを書くとif not isinstance、私は本当に怒ってしまいます:D

4

1 に答える 1

1

関数の引数の型を定義する組み込みの方法はありません - これは部分的に設計によるものです - classB を渡すときに "classA expected" というエラーが発生するのではなく、属性を検索しているときにエラーが発生します。その後、この属性を classB で定義すると、関数は本来設計されていない型で機能します。

そのサイズを持っているので、あなたが求めているデコレータを書く方法の例を次に示します

于 2012-10-21T13:11:13.700 に答える