関数定義があるとします。
def test():
print 'hi'
引数を指定するたびにTypeErrorが発生します。
ここで、defステートメントを試してみたいと思います。どうすればよいですか?
関数定義があるとします。
def test():
print 'hi'
引数を指定するたびにTypeErrorが発生します。
ここで、defステートメントを試してみたいと思います。どうすればよいですか?
try:
test()
except TypeError:
print "error"
In [1]: def test():
...: print 'hi'
...:
In [2]: try:
...: test(1)
...: except:
...: print 'exception'
...:
exception
これがチュートリアルの関連セクションです
ところで。このエラーを修正するには、関数呼び出しをtry-exceptでラップしないでください。代わりに、適切な数の引数を使用して呼び出してください。
あなたが言った
ここで、def ステートメントを試してみたいと思います。これを行う方法。
ステートメントは正しいです。def
例外は発生していません。したがって、それを入れてtry
も何も起こりません。
例外が発生するのは、関数への実際の呼び出しです。したがって、try
代わりに次のように配置する必要があります。
try:
test()
except TypeError:
print "error"
呼び出し時にエラーをスローしたい場合は、次のアプローチを試すことができます。
def test(*args):
if args:
raise
print 'hi'
これにより、エラーが呼び出し場所から関数にシフトされます。リストを介して任意の数のパラメーターを受け入れます*args
。なぜあなたがそれをしたいのか私にはわかりません。
Python で可変数の引数を処理するより良い方法は次のとおりです。
def foo(*args, **kwargs):
# args will hold the positional arguments
print args
# kwargs will hold the named arguments
print kwargs
# Now, all of these work
foo(1)
foo(1,2)
foo(1,2,third=3)
これは有効です:
try:
def test():
print 'hi'
except:
print 'error'
test()