[Edu-sig] more simmering debate...
Carl Karsten
carl at nextdayvideo.com
Wed Apr 20 18:58:48 EDT 2016
I also don't show real code right away. I scribble on the white board.
class MotherShip; ... yeah, that's correct, but to me it looks too wordy
for what is a fairly simple concept.
hmm... simple? ok, inheritance is the concept that I think is fairly
simple if you don't dive into all the other neat stuff. Once they see the
elegance of
talks=self.get_list_of_talks_to_process()
for talk in talks:
self.work(talk)
their eyes light up and I let them bask in the benefits of elegant
programming.
After that, I think they will be receptive to learn all that other neat
stuff on their own.
On Wed, Apr 20, 2016 at 5:19 PM, kirby urner <kirby.urner at gmail.com> wrote:
>
>
>> Our classes often behave a lot more like objects with a life of their
>> own.
>>
>>
> For example I might do something like this. One could argue this is not
> describing an "is a" relationship i.e. how can each member of the landing
> party be a "ship".
>
> I'm saying we internalize our type inheritance and "is a" might not apply
> in quite the same way in this particular knowledge domain. Keep an open
> mind.
>
> # -*- coding: utf-8 -*-
> """
> Created on Wed Apr 20 14:56:55 2016
>
> @author: Kirby Urner
>
> 10 Cloverfield Lane,
> Nowhere, Nebraska
>
> """
> import random
>
> class MotherShip:
>
> attack_mode = False
> # note to self, need to learn more Earthling names
> earthling_names = ['Alan', 'Helga', 'Ahmed', 'Jerome', 'Achio',
> 'Kelly']
>
> @classmethod
> def toggle(M):
> if M.attack_mode:
> M.attack_mode = False;
> else:
> M.attack_mode = True
>
> @classmethod
> def spawn(M, n): # size of pod
> pod = []
> for _ in range(n):
> pod.append(M()) # blessings
> return pod
>
> def __init__(self): # rarely used except by spawn
> self.name = random.choice(self.__class__.earthling_names)
>
> def __repr__(self):
> return self.name # we each feel empowered by the whole!
>
> # ship lands...
>
> landing_party = MotherShip.spawn(10) # spawn a swarm of little selves
> print("Landing Party:", landing_party)
>
> print("Hostile?: ", landing_party[3].attack_mode)
>
> # what hath triggered their ire? Everything was going so well...
>
> MotherShip.toggle() # each self has a shared collective hive mind
>
> print("Hostile?: ", landing_party[3].attack_mode) # uh oh...
>
> === Anaconda.console (blank rows added for readability):
>
> runfile('/Users/kurner/Documents/classroom_labs/martians_landed.py',
> wdir='/Users/kurner/Documents/classroom_labs')
>
> Landing Party: [Kelly, Kelly, Achio, Kelly, Jerome, Alan, Alan, Helga,
> Achio, Alan]
>
> Hostile?: False
>
> < some triggering event? >
>
> Hostile?: True
>
>>
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> https://mail.python.org/mailman/listinfo/edu-sig
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20160420/b1c12c85/attachment-0001.html>
More information about the Edu-sig
mailing list