To demonstrate the proxy pattern, we will implement a simple protection proxy to view and add users. The service provides two options:

  • Viewing the list of users: This operation does not require special privileges
  • Adding a new user: This operation requires the client to provide a special secret message

The SensitiveInfo class contains the information that we want to protect. The users variable is the list of existing users. The read() method prints the list of the users. The add() method adds a new user to the list.

Let's consider the following code:

class SensitiveInfo:     def __init__(self):         self.users = ['nick', 'tom', 'ben', 'mike']       def read(self):         nb = len(self.users) print(f"There are {nb} users: {' '.join(self.users)}") ...

Get Mastering Python Design Patterns - Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.