[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