twisted.python.components.Interface

Package twisted :: Package python :: Module components :: Class Interface |
[frames | no frames]

## Class Interface

Known Subclasses:
  `IAccount`, `IAccount`, `IAddress`, `IAlias`, `IAuthorizer`, `IBucketFilter`, `IChatUI`, `IClient`, `IClientAuthentication`, `ICloseableMailbox`, `ICommand`, `ICommandLog`, `IConchUser`, `IConnector`, `IConsumer`, `IContact`, `IController`, `IConversation`, `ICredentials`, `ICredentialsChecker`, `IDelayedCall`, `IDomain`, `IEthernetProtocol`, `IFileDescriptor`, `IFTPShell`, `IGroup`, `IGroupConversation`, `IJellyable`, `IListeningPort`, `ILocator`, `IMailbox`, `IMailboxInfo`, `IMailboxListener`, `IManholeClient`, `IMessage`, `IMessageCopier`, `IMessageDelivery`, `IMessageDeliveryFactory`, `IMessageFile`, `IMessagePart`, `IModel`, `IMulticastTransport`, `INamespacePresenter`, `INewsStorage`, `INode`, `INodeMutator`, `IOldApplication`, `IPBRoot`, `IPersistable`, `IPerson`, `IPerspective`, `IPerspective`, `IProcess`, `IProducer`, `IProtocol`, `IProtocolFactory`, `IRawDatagramProtocol`, `IRawPacketProtocol`, `IReactorArbitrary`, `IReactorCore`, `IReactorFDSet`, `IReactorMulticast`, `IReactorPluggableResolver`, `IReactorProcess`, `IReactorSSL`, `IReactorTCP`, `IReactorThreads`, `IReactorTime`, `IReactorUDP`, `IReactorUNIX`, `IReactorUNIXDatagram`, `IRealm`, `IRegistry`, `IRemoteReporter`, `IResolverSimple`, `IResource`, `ISearchableMailbox`, `IServerFactory`, `IService`, `IService`, `IService`, `IServiceCollection`, `IServiceCollection`, `ISession`, `ISFTPServer`, `ISystemHandle`, `ITestRunner`, `ITransport`, `IUDPConnectedTransport`, `IUDPTransport`, `IUNIXDatagramConnectedTransport`, `IUNIXDatagramTransport`, `IUnjellyable`, `IView`, `IWordsClient`, `IWordsPolicy`, `IWovenLivePage`

Base class for interfaces.

Interfaces define and document an interface for a class. An interface class's name must begin with I, and all its methods should have no implementation code.

Objects that implement an interface should have an attribute __implements__, that should be either an Interface subclass or a tuple, or tuple of tuples, of such Interface classes.

A class whose instances implement an interface should list the interfaces its instances implement in a class-level __implements__.

For example:

       | class IAdder(Interface):
       |     'Objects implementing this interface can add objects.'
       |
       |     def add(self, a, b):
       |         'Add two objects together and return the result.'
       |
       | class Adder:
       |
       |     __implements__ = IAdder
       |
       |     def add(self, a, b):
       |         return a + b

You can call an Interface with a single argument; If the passed object can be adapted to the Interface in some way, the adapter will be returned.

Generated by Epydoc 2.0 on Sat May 15 20:07:36 2004 | http://epydoc.sf.net