1.1.8.4 Defining a protocol as a local variation of another protocol
Description: Defining a protocol as a local variation of another protocol
Keywords: ref

###
1.1.8.4 Defining a protocol as a local variation of another protocol

class `Variation`( | baseProtocol [, context=None])

  New in version 0.9.1. A `Variation` is a `Protocol` that "inherits" adapter declarations from an existing protocol. When you create a `Variation`, it declares that it is implied by its baseProtocol, and so any adpater suitable for adapting to the base protocol is therefore suitable for the `Variation`. This allows you to then declare adapters to the variation protocol, without affecting those declared for the base protocol. In this way, you can have a protocol object that represents the use of the base protocol in a particular context. You can optionally specify that context via the context argument, which will then serve as the `context` attribute of the protocol. For more background on how this works and what it might be used for, see section 1.1.10.