When I'm reading the source and come across the following code
class BaseRequestHandler:
"""Base class for request handler classes.
This class is instantiated for each request to be handled. The
constructor sets the instance variables request, client_address
and server, and then calls the handle() method. To implement a
specific service, all you need to do is to derive a class which
defines a handle() method.
The handle() method can find the request as self.request, the
client address as self.client_address, and the server (in case it
needs access to per-server information) as self.server. Since a
separate instance is created for each request, the handle() method
can define other arbitrary instance variables.
"""
def __init__(self, request, client_address, server):
self.request = request
self.client_address = client_address
self.server = server
self.setup()
try:
self.handle()
finally:
self.finish()
What are request, client_address, and server? I think the person who wrote this code expects an object of a certain type to be stuck here. But I don't know what it is because the type is not specified. You have to find the caller and see what it is. This is because the type information in the brain of the person writing the code is omitted in the source code.
Recommended Posts