The guys in my lab like to use python for a lot of the projects we do, so I thought I'd give it a whirl. Some of the packages are pretty handy and easy to use, so it seems like a decent choice. Problem* is, they don't write OO code and I'd much rather use classes for a lot of the stuff we're doing. For instance, we use Python code to control various instruments some of which use GPIB for communication and some of which use other methods, like RS232. So I would envision, for example, having a generic class for a temperature controller which would have methods like GetTemp and SetTemp.
In C++, I'd probably define some sort of abstract base class and then code specific classes inheriting from it for each model of temperature controller we use (we do in fact have at least one that uses serial and one that uses GPIB). But in Python, I've just learned, you have "Duck Typing" which seems to be an alternative to using inheritance. My personal opinion is that it seems like sloppy coding, but is it really just common practice to use duck typing?
*It's actually not really a problem since all of our coding projects are small and we could get away with a lot of bad practices, but I like to do things right