Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jorendorff/9257de148784acdd884d5388755abb17 to your computer and use it in GitHub Desktop.
Save jorendorff/9257de148784acdd884d5388755abb17 to your computer and use it in GitHub Desktop.
stamp-utils bar usage example
# Some more privileged methods, with some private data.
class Availability:
def __init__(self):
self._is_open = False
def open(self):
self._is_open = True
def close(self):
self._is_open = False
def is_open(self):
return self._is_open
# Here's a class with public methods, and some state:
class Membership:
def __init__(self):
self.members = {}
def add(self, member):
self.members[member.name] = member
def get_member(self, name):
return self.members.get(name)
# Let's set some defaults:
class Defaults:
def __init__(self):
self.name = 'The Saloon'
self.specials = 'Whisky, Gin, Tequila'
class Overrides:
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
# Classical inheritance has nothing on this. No parent/child coupling.
# No deep inheritance hierarchies.
# Just good, clean code reusability.
class Bar(Availability, Membership, Defaults, Overrides):
def __init__(self, **kwargs):
Availability.__init__(self)
Membership.__init__(self)
Defaults.__init__(self)
Overrides.__init__(self, **kwargs)
my_bar = Bar(name="Moe's")
# Silly, but proves that everything is as it should be.
print(f"""
name: { my_bar.name }
is_open: { my_bar.is_open() }
specials: { my_bar.specials }
""")
# name: Moe's
# is_open: true
# specials: Whisky, Gin, Tequila
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment