Help creating new module which inherits existing class from another module.

Ben Finney ben+python at benfinney.id.au
Wed Feb 19 21:34:06 EST 2014


Jonno <jonnojohnson at gmail.com> writes:

> Let's say the existing module provides a class RoboCom() which allows
> the user to communicate with robots (it doesn't).

Well, can you say what it *does* do? These hypotheticals aren't very
helpful; I don't know what inferences I'm safe to draw from the made-up
situation. What is it you're *actually* trying to allow the user to do?

> A command that can be sent to the humanoid robot might look like:
> 1. send_cmd("left_leg.knee.raise 1.1")    # 1.1 being a height in units of m
> A command that can be sent to the canine robot might look like:
> 2. send_cmd("tail.wag 3")     # where 3 = number of times to wag.

So, the robot (except it's not a robot, apparently) is controlled by a
textual command API (or is it? is that part true, or just hypothetical?)

If you're trying to wrap a command-line based API in an object-oriented
API, then you're going to have considerable impedance mismatch between
those APIs.

Your success will depend on a number of factors, such as: how frequently
can the command-line interface be expected to change; how much effective
control do you have over the design of the command-line interface; how
sane is the command-line interface design; etc.

I can't recommend much general advice beyond: don't expect to wrap a
command-line interface in an object-oriented interface without greatly
distorting one or the other or both. It may be possible to get a modicum
of success, but you should not expect it to be satisfactory.

Of course, if I knew what you're *actually* trying to program for, I
might be able to offer more specific advice.

> Does that help explain things better?

Not really. It's up to you if you want to be coy about your actual
requirements, but the quality of assistance you can expect will be
commensurately low.

-- 
 \         “Two paradoxes are better than one; they may even suggest a |
  `\                                         solution.” —Edward Teller |
_o__)                                                                  |
Ben Finney




More information about the Python-list mailing list