Python 3.3 と SWIG 2.0.10 を使用して、派生クラスを基本クラスを取る関数に渡しています。
同じ SWIG .i ファイルが C# に使用されており、うまく機能します。ただし、Python では、SWIG は、派生型を受け入れる C++ メソッドはなく、基本型を受け入れるメソッドしかないと報告しています。そのステートメントは正しいですが、派生型を渡し、それが基本型であるかのように SWIG に呼び出しを指示させる必要があります。
派生型は C++ には存在しません。Python (および C#) にのみ存在します。ただし、ディレクターを有効にしており、前述のように C# で正常に動作しています。
Python 2.6 と 2.7 で同じ結果になります。
C++
class Base {};
// Note: there is NO "class Derived" in C++.
void f(Base* a) { ... }
パイソン
class Derived(Base): pass
x = Derived()
f(x) # SWIG runtime error - In C++ there is no f(Derived*) - there is only f(Base*)