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