pythonよくわからんけどそういうのって
def foo(obj):
 if isinstance(obj, int):
  foo_int(obj)
 elif isinstance(obj, str):
  foo_str(obj)
  ...
みたいなコードが

def foo(intobject=None, strobject=None, listobject=None, hashobject=None):
 if intobject != None:
 foo_int(intobject)
 elif strobject != None:
  foo_str(strobject)
  ...
みたいになるだけ?
まったくうれしくない、デフォルト引数の使い方間違ってね?