Interface support?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Steve

    #1

    Interface support?

    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
  • Michele Simionato

    #2
    Re: Interface support?

    Twisted and Zope already use interfaces. You can download
    the interface package and use it in you project.


    Michele Simionato

    Comment

    • Steve

      #3
      Re: Interface support?

      Michele Simionato wrote:[color=blue]
      > Twisted and Zope already use interfaces. You can download
      > the interface package and use it in you project.
      >[/color]

      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

      Comment

      • Michele Simionato

        #4
        Re: Interface support?

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

        Comment

        • Michael Spencer

          #5
          Re: Interface support?

          Steve wrote:[color=blue]
          > Is it possible to design interfaces that classes must implement in
          > Python?[/color]

          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(o bject):
          def someMethod(self , argspec):
          # Should never get here, because the implementation overrides this method
          raise NotImplmentedEr ror

          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?[color=blue]
          >[/color]
          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:



          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

          Comment

          • Ville Vainio

            #6
            Re: Interface support?

            >>>>> "Michael" == Michael Spencer <mahs@telcopart ners.com> writes:

            Michael> Steve wrote:
            [color=blue][color=green]
            >> Is it possible to design interfaces that classes must implement
            >> in Python?[/color][/color]

            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

            Comment

            Working...