I have a c# class that implements an interface and I also have some more public methods on this class, what I want is to expose to python code only the methods belonging to this interface and not the whole object.
Is there a simple way to do this without to create a new class ?
Use the [PythonHidden] attribute on methods you do not want to expose.
IronPython will always make calls based on the original object, not the interface type. Creating a wrapper class, which maintains a reference to your Interface implementor , forwarding the calls as required, is also a good approach.
How to expose only the interface implementation to IronPython