11.7 Odds and Ends
Sometimes it is useful to have a data type similar to the Pascal
"record" or C "struct", bundling together a couple of named data
items. An empty class definition will do nicely:
john = Employee() # Create an empty employee record
# Fill the fields of the record
john.name = 'John Doe'
john.dept = 'computer lab'
john.salary = 1000
A piece of Python code that expects a particular abstract data type
can often be passed a class that emulates the methods of that data
type instead. For instance, if you have a function that formats some
data from a file object, you can define a class with methods
readline() that gets the data from a string
buffer instead, and pass it as an argument.
Instance method objects have attributes, too:
m.im_self is the
object of which the method is an instance, and
m.im_func is the
function object corresponding to the method.