On Fri, 12 Dec 2008 at 16:07, J Ramesh Kumar wrote:
I am new to python. I require some help on implementing interface and
its implementation. I could not find any sample code in the web. Can
you please send me some sample code which is similar to the below java
code ? Thanks in advance for your help.

............
public interface MyIfc
{
   public void myMeth1();
   public void myMeth2();
}
....
public class MyClass implements MyIfc
{
     public void myMeth1()
     {
         //do some implementation
     }

    public void myMeth2()
      {
          //do some implementation
      }
}
...

MyClass myc=new MyClass();
Hashtable hash=new Hashtable();
hash.put("MYIFC",myc);
........
MyIfc myi=(MyIfc)hash.get("MYIFC");
myi.myMeth1();
myi.myMeth2();
.........

The python 2.x way to to this would be:

    class MyClass(object):

        def myMeth1(self):
            #do some implementation

        def myMeth2(self):
            #do some implementation

    myc = MyClass()
    hash = dict()
    hash["MYIFC"] = myc
    myi = hash["MYIFC"]
    myi.myMeth1()
    myi.myMeth2()

Which is to say, python 2.x does not have any formal notion
of interfaces.

In python 3.0 if you have a need for an interface you can do this:

    from abc import ABCMeta, abstractmethod

    class MyIfc:
        __metaclass__ = ABCMeta

        @abstractmethod
        def myMeth1(self): pass

        @abstractmethod
        def myMeth2(self): pass


    class MyClass(MyIfc):
        [from here on just like above]

Note however, that an Abstract Base Class is _not_ the same thing
as a Java interface, though it can serve some of the same purposes.
See http://docs.python.org/dev/3.0/whatsnew/2.6.html#pep-3119 for
more.

--RDM
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to