prep all of the matchers by calling next(for in matchersm next(feed an active log file into all matchers note for this to worka web server must be actively writing data to the log wwwlog tail(open("access-log")for line in wwwlogfor in matchersm send(linesend data into each matcher coroutine further details about coroutines can be found in objects and classes all values used in program are objects an object consists of internal data and methods that perform various kinds of operations involving that data you have already used objects and methods when working with the built-in types such as strings and lists for exampleitems [ items append( create list object call the append(method the dir(function lists the methods available on an object and is useful tool for interactive experimentation for exampleitems [ dir(items[' _add_ '' _class_ '' _contains_ '' _delattr_ '' _delitem_ ''append''count''extend''index''insert''pop''remove''reverse''sort'when inspecting objectsyou will see familiar methods such as append(and insert(listed howeveryou will also see special methods that always begin and end with double underscore these methods implement various language operations for examplethe _add_ (method implements the operatoritems _add_ ([ , ][ the class statement is used to define new types of objects and for object-oriented programming for examplethe following class defines simple stack with push()pop()and length(operationsclass stack(object)def _init_ (self)self stack def push(self,object)self stack append(objectdef pop(self)return self stack pop(def length(self)return len(self stackinitialize the stack in the first line of the class definitionthe statement class stack(objectdeclares stack to be an object the use of parentheses is how python specifies inheritance--in this casestack inherits from objectwhich is the root of all python types inside the class definitionmethods are defined using the def statement the first argument in each lib fl ff