同じ構造を持つさまざまな種類の情報を区別できるように、特定のデータ型を実装することをお勧めします。list
たとえば、単純にサブクラス化し、関数内で実行時に型チェックを行うことができます。
class WaveParameter(list):
pass
class Point(list):
pass
# you can use them just like lists
point = Point([1, 2, 3, 4])
wp = WaveParameter([5, 6])
# of course all methods from list are inherited
wp.append(7)
wp.append(8)
# let's check them
print(point)
print(wp)
# type checking examples
print isinstance(point, Point)
print isinstance(wp, Point)
print isinstance(point, WaveParameter)
print isinstance(wp, WaveParameter)
したがって、この種の型チェックを関数に含めて、正しい種類のデータが渡されたことを確認できます。
def example_function_with_waveparameter(data):
if not isinstance(data, WaveParameter):
log.error("received wrong parameter type (%s instead WaveParameter)" %
type(data))
# and then do the stuff
または単にassert
:
def example_function_with_waveparameter(data):
assert(isinstance(data, WaveParameter))