'Initializer.
This constructor will make a few guesses about the value passed in
as the validator:
- If the validator argument is a type, it automatically creates a Type
validator around it.
- If the validator argument is a list or tuple, it automatically
creates an Options validator around it.
Args:
validator: Optional validation condition.
Raises:
AttributeDefinitionError: if validator is not callable.'

def __init__(self, validator, default=None):

    self.validator = AsValidator(validator)
    self.expected_type = self.validator.expected_type
    self.default = default
