O'Reilly logo

Exercises in Programming Style by Cristina Videira Lopes

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 23

Declared Intentions

image

23.1 Constraints

  • Existence of a type enforcer.
  • Procedures and functions declare what types of arguments they expect.
  • If callers send arguments of types that aren't expected, type errors are raised, and the procedures/functions are not executed.

23.2 A Program in this Style

  1 #!/usr/bin/env python
  2 import sys, re, operator, string, inspect
  3
  4 #
  5 # Decorator for enforcing types of arguments in method calls
  6 #
  7 class AcceptTypes():
  8 def __init__(self, *args):
  9    self._args = args
 10
 11 def __call__(self, f):
 12    def wrapped_f(*args):
 13        for i in range(len(self._args)):
 14        if type(args[i]) <> self._args[i]: ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required