By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,235 Members | 1,008 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,235 IT Pros & Developers. It's quick & easy.

Interface support?

P: n/a
Is it possible to design interfaces that classes must implement in
Python? If it's not, is this functionality planned at all for the future?

Thanks,
Steve
Jul 18 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Twisted and Zope already use interfaces. You can download
the interface package and use it in you project.
Michele Simionato

Jul 18 '05 #2

P: n/a
Michele Simionato wrote:
Twisted and Zope already use interfaces. You can download
the interface package and use it in you project.


Thanks for the response. I'm completely new to Python, where exactly
would I go to find these interface packages(Python site, or Twisted/Zope
sites)? Is it the same interface package for both, or are they
different? If different, is one better than the other?

Thanks,
Steve
Jul 18 '05 #3

P: n/a
Now they use the same interface package. For the other
questions: google is your friend. (try "zope interfaces"
then "twisted interfaces").

Jul 18 '05 #4

P: n/a
Steve wrote:
Is it possible to design interfaces that classes must implement in
Python?
There are some well-known 'independent' implementations of interfaces:
Zope Interfaces :http://www.zope.org/Wikis/Interfaces/FrontPage
- a separable component of the much larger app server
Twisted Interfaces: see http://twistedmatrix.com/

PyProtocols: http://peak.telecommunity.com/PyProtocols.html, whose
author is one of the protagonists in the PEP246 saga
There are also several possible light-weight roll-your-own solutions
One common idiom is an abstract base class:

class SomeInterface(object):
def someMethod(self, argspec):
# Should never get here, because the implementation overrides this method
raise NotImplmentedError

but the compiler doesn't pay any special attention to these classes so failure
to implement the interface is detected at runtime

If it's not, is this functionality planned at all for the future?

Python Enhancement Proposals 245, and 246 http://www.python.org/peps/ discuss an
interface syntax and the related topic of object adaptation. These are both
current discussions among the Python developers with no decision on whether/when
to introduce either as far as I know. Observer the fray at:
http://mail.python.org/pipermail/python-dev/
Guido Van Rossum (Python creator and BDFL) recently blogged about "Optional
Static Type Checking" http://www.artima.com/weblogs/viewpost.jsp?thread=89161
as part of long-range planning for a future Python 3000 (some years in the future)

HTH

Michael

Jul 18 '05 #5

P: n/a
>>>>> "Michael" == Michael Spencer <ma**@telcopartners.com> writes:

Michael> Steve wrote:
Is it possible to design interfaces that classes must implement
in Python?


Michael> PyProtocols: http://peak.telecommunity.com/PyProtocols.html,

This (PyProtocols) seems to be the one with biggest momentum at the
time being, so if you can't be bothered to perform an independent and
balanced evaluation, go for PyProtocols :-).

--
Ville Vainio http://tinyurl.com/2prnb
Jul 18 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.