- The problem is decomposed using some form of abstraction (procedures, functions, objects, etc.).
- Aspects of the problem are added to the main program without any edits to the source code of the abstractions or the sites that use them.
- An external binding mechanism binds the abstractions with the aspects.
18.2 A Program in this Style
1 #!/usr/bin/env python
2 import sys, re, operator, string, time
5 # The functions
7 def extract_words(path_to_file):
8 with open(path_to_file) as f:
9 str_data = f.read()
10 pattern = re.compile('[\W_]+')
11 word_list = pattern.sub(' ', str_data).lower().split()