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]: ...

Get Exercises in Programming Style now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.