Mike Driscoll wrote: > On May 6, 8:44 am, jmDesktop <[EMAIL PROTECTED]> wrote: >> Studying OOP and noticed that Python does not have Interfaces. Is >> that correct? Is my schooling for nought on these OOP concepts if I >> use Python. Am I losing something if I don't use the "typical" oop >> constructs found in other languages (Java, C# come to mind.) I'm >> afraid that if I never use them I'll lose them and when I need them >> for something beside Python, I'll be lost. Thank you. > > In my school, we didn't even discuss the concept of interfaces (except > for CLI and GUI, that is). So I looked it up. I assume you are > referring to something like what's found here: > > http://java.sun.com/docs/books/tutorial/java/concepts/interface.html > > If so, then it looks like an Interface is a generic class with method > stubs. You can do that with Python just as easily by creating empty > methods with just the "pass" keyword. It also reminds me of > Decorators...so you might want to look at those.
Instead of just using "pass", you should "raise NotImplementedError". >From the docs: "In user defined base classes, abstract methods should raise this exception when they require derived classes to override the method." > Since it's just a construct to implement polymorphism, I don't think > you'll lose anything. However, Python does not require you to re- > implement every method of the class it is inheriting from. You can > just override those that you want and leave the others alone. > > Hopefully I understand this correctly...otherwise, just ignore my > babbling and hand waving. > > Mike -- -- http://mail.python.org/mailman/listinfo/python-list