>>435
少しくらいならisinstance使えばいいし、大量に使わないといけなくて可読性が低下するなら、
それは多重継承が必要な場面だから>>360の方法で多重継承すればいい。

けれど、本当に多重定義が必要な場面ってそんなにないよ。
例えばdraw_rectに関しては、Rect型しか取らないことにできる。
似た引数の関数を作るときのことを考えると、そうした方が手間は少ない。

キーワード引数使うっていうのは、例に出てたような
def f(intobj=None, strobj=None, ...)はアホの極みだが、
list.sort(reverse=False, key=None)みたいなのは無駄な多重継承を避ける役に立つ。

>>440
場合によるんじゃね?
それに、どうしても多重定義が必要なら、する方法はあるんだから。

>>446
必要か?
x(callable, callable) -> callableでいいんじゃね?