[Edu-sig] more simmering debate...

kirby urner kirby.urner at gmail.com
Wed Apr 20 18:50:02 EDT 2016


On Wed, Apr 20, 2016 at 1:53 PM, kirby urner <kirby.urner at gmail.com> wrote:

<< SNIP >>


> I like to say the class is a "mother ship" and serves as a kind of "home
> base" or "platform".  How about an "amusement park"?
>
>
Another one to limber up on:

# -*- coding: utf-8 -*-
"""
Created on Wed Apr 20 15:27:35 2016

@author: Kirby Urner
Carnival Guy (aka "geek", luvs chicken)

"""

class Blech(Exception):
    pass

class AmusementPark:  # euphemism for carnival

    @classmethod
    def ferris_wheel(A, me):
        me.sick = False
        return me

    @classmethod
    def roller_coaster(A, me):
        # moral: don't eat before riding the roller coaster
        if len(me.stomach) > 0:
            me.sick = True    # sick state persists
            me.stomach = []  # ... this should help though
        return me

    @classmethod
    def make_rider(A):
        return A()

    def __init__(self):  # born to ride
        self.stomach = []
        self.sick = False

    def __call__(self, food): # born to eat
        if self.sick:
            raise Blech("too sick to eat")
        self.stomach.append(food)

    def __repr__(self):
        if self.sick:
            return "I don't feel so good"
        else:
            return "I feel fine"


A1 = AmusementPark
alice = A1.make_rider()  # a child of her profession


A1.ferris_wheel(alice)
print("Sick after ferris wheel:", alice)

# time to eat!
try:
    alice("cotton candy")
    alice("diet doctor pepper")
    alice("hot dog with onions")
except:
    print("I'll eat later...")

A1.roller_coaster(alice)
print("Sick after roller coaster?", alice)  # it always happens

# time to eat!
try:
    alice("popcorn")
    alice("gum drops")
    alice("another diet doctor pepper")
except:
    print("I'll eat later...")

Runtime:

runfile('/Users/kurner/Documents/classroom_labs/having_fun.py',
wdir='/Users/kurner/Documents/classroom_labs')

Sick after ferris wheel: False
Sick after roller coaster? True
I'll eat later...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20160420/44a35ca7/attachment.html>


More information about the Edu-sig mailing list