Difference between type and class
Thomas Troeger
thomas.troeger.ext at siemens.com
Thu Jul 31 07:32:39 EDT 2008
> Can someone explain to me the difference between a type and a class?
If your confusion is of a more general nature I suggest reading the
introduction of `Design Patterns' (ISBN-10: 0201633612), under
`Specifying Object Interfaces'.
In short: A type denotes a certain interface, i.e. a set of signatures,
whereas a class tells us how an object is implemented (like a
blueprint). A class can have many types if it implements all their
interfaces, and different classes can have the same type if they share a
common interface. The following example should clarify matters:
class A:
def bar(self):
print "A"
class B:
def bar(self):
print "B"
class C:
def bla(self):
print "C"
def foo(x):
x.bar()
you can call foo with instances of both A and B, because both classes
share a common type, namely the type that has a `bar' method), but not
with an instance of C because it has no method `bar'. Btw, this example
shows the use of duck typing (http://en.wikipedia.org/wiki/Duck_typing).
HTH,
Thomas.
More information about the Python-list
mailing list