Jump to content

Recommended Posts

I'm trying to pick up Python for a project, and I'm a bit confused about how to use abstraction and classes. (I'm not a very experienced programmer, so apologies for the basic level of this question.) I come from a Java/Ocaml background, and what I've been trying to do is as follows: I have abstract classes for a graph and a graph advanced (a graph with some more fancy methods), that looks something like this
 

class AbstractGraph: 
   def method1(self): 
      raise NotImplementedError
   ...
 
class AbstractAdvanced:
   def method2(self):
      raise NotImplementedError 
   ... 


I then have an implementation of a graph:
 

class Graph(AbstractGraph):
   def method1(self):
      * actual code * 


Now my question is: can I do something like this?
 

class Advanced(AbstractAdvanced, AbstractGraph):
   def method2(self):
      *actual code, using the methods from AbstractGraph*


In other words, how can I define the methods of Advanced abstractly in terms of the methods of AbstractGraph, and then somehow pass Graph into a constructor to get an instance of Advanced that uses Advanced's definitions with Graph's implementation?
 
In terms of Ocaml, I'm trying to treat AbstractAdvanced and AbstractGraph as module types, but I've played around a little with python and I'm not sure how to get this to work.
 

Link to comment
https://wrobot.eu/forums/topic/14553-abstraction-in-python/
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...