Abstract class

Mr.SpOOn mr.spoon21 at gmail.com
Sun Sep 14 20:55:02 CEST 2008


Gary Harron:
>I believe you are mixing up class *inheritance* and *abstract* classes.

>Class inheritance (with Python has has for years) is how one class inherits >behavior/properties/attributes from another class.  The class being inherited from is >called the base class.  This is probably what you want.

Well, I know the difference between an abstract class and an inherited
one. The idea was to create a main class Note, with abstract methods,
and implement these methods in the other classes.

On Sun, Sep 14, 2008 at 7:56 PM, Roy Smith <roy at panix.com> wrote:
> What properties or behaviors does SharpNote have which NaturalNote doesn't?
> Unless there is some new behavior, you don't need subclasses.

Well, from a SharpNote I can obtain the relative NaturalNote. So if I
have a C# I can call

natural('C#')  and get 'C'

While in the class NaturalNote I don't need such a method, but I need
two methods to get the sharped and flatted version

> Are you also going to have DoubleSharpNote and DoubleFlatNote?

Yes, that's an option.

> Consider the following code:
>
> note1 = SharpNote("E4")
> note2 = NaturalNote("F4")
> if note1 == note2:
>   print "the same note"
> else
>   print "different notes"
>
> what should it print?

Well, that's not so simple. The idea is that I use a notation (A, B,
C, D...) and an integer (a distance expressed in semitones) to
identify a note.

Anyway, I think I need an abstract class. Or not?



More information about the Python-list mailing list