-
Notifications
You must be signed in to change notification settings - Fork 6
/
intro_classes.py
77 lines (58 loc) · 1.7 KB
/
intro_classes.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 11 18:28:39 2016
@author: Kirby Urner
Intro to classes
with thanks to PDX Code Guild, Instructor: Tiffany
"""
from random import choice
class Smell:
pass
class Mammal:
def __init__(self):
self.stomach = [ ]
def eat(self, food):
self.stomach.append(food)
class Dog(Mammal):
def __init__(self, name, breed):
super().__init__()
self.name = name
self.breed = breed
def bark(self, how_many): # expect int
return "Bark! " * how_many
def sniff(self, the_smell):
if the_smell.food_smell:
return "Whine!"
class Die: # as in dice
"""model a die of n sides"""
def __init__(self, sides = None):
if not sides:
self.sides = list(map(str, range(1,7)))
else:
self.sides = sides
self.current_value = self.sides[0]
def roll(self):
"""pick a side, any side..."""
self.current_value = choice(self.sides)
return self.current_value
def __repr__(self):
return "Die with value {}".format(self.current_value)
if __name__ == "__main__":
# Dog section
puppy = Dog("Snoopy", "Beagle")
print(puppy.bark(3))
puppy.eat("steak!")
print("Inside puppy:", puppy.stomach)
yummy = Smell()
yummy.food_smell = True
print(puppy.sniff(yummy))
# Die section
it, it1, it2, it3 = Die(), Die(), Die(), Die()
print((it2.roll(), it3.roll()))
print(it.roll())
print(it.roll())
print(it.roll())
print(it.roll())
print(it)
print("it:", it.__dict__)
print("it2:", it2.__dict__)