関数の引数として型または型のリストを渡したいと思います。しかし、関数の中で型のリストと型のリストを区別する必要があります。変数にタイプまたはタイプのリストが含まれているかどうかをチェックする方法は?
if //someVar is a type//:
....
elif isinstance(someVar, list):
for t in list:
if //t is a type//:
....
else:
print("ERROR")
else
print("ERROR")
タイプのいずれかができint型またはstrののようないくつかの「原始的」であるだけでなく、同様にタプルやクラス:大雑把に私はこのような分岐のいくつかの種類を必要と説明しました。
質問:タイプとタイプのリストを正確かつ効率的に区別するにはどうすればよいですか?
あなたがしようとしていることのより広いコンテキストについて説明できますか?見たことがありますか? 'isinstance' /' issubclass'? – jonrsharpe
'list'sを明示的にチェックする必要がありますか?また、*あなたのための型にはならない*ものはありませんか? –
説明のために:私の意図は型情報を型検証メソッドに渡すことです。このメソッドに渡される型制約を指定する方法をユーザーに何らかの自由を与えたいと思います。そのため私は彼に単一のタイプまたはタイプのリスト(そして将来的にはいくつかの他のオプション)を指定させたいと考えています。そのため、提供される情報は単一の変数に格納されます。結果として、ユーザーが提供する情報を正しく処理するために、コード内で何らかの分岐が必要になります。 –