adds shapes
This commit is contained in:
parent
d25b6330b4
commit
c498ca8a8e
|
@ -886,6 +886,7 @@ def pretty_print(msg, decorator="#"):
|
||||||
print("{} {} {}".format(decorator, msg, decorator))
|
print("{} {} {}".format(decorator, msg, decorator))
|
||||||
print(decorator * line_len)
|
print(decorator * line_len)
|
||||||
|
|
||||||
|
|
||||||
pretty_print("Wouter")
|
pretty_print("Wouter")
|
||||||
pretty_print("Python rules!")
|
pretty_print("Python rules!")
|
||||||
pretty_print("Alice", "-")
|
pretty_print("Alice", "-")
|
||||||
|
@ -1939,6 +1940,7 @@ class Animal(object):
|
||||||
else:
|
else:
|
||||||
print("{} growls in {}'s face".format(self.name, person))
|
print("{} growls in {}'s face".format(self.name, person))
|
||||||
|
|
||||||
|
|
||||||
dog_1 = Animal("bobby", 4, "dave")
|
dog_1 = Animal("bobby", 4, "dave")
|
||||||
dog_2 = Animal("dianne", 4, "alice")
|
dog_2 = Animal("dianne", 4, "alice")
|
||||||
dog_3 = Animal("rex", 3, "dave")
|
dog_3 = Animal("rex", 3, "dave")
|
||||||
|
@ -2041,11 +2043,76 @@ for animal in all_animals:
|
||||||
🏃 Try it
|
🏃 Try it
|
||||||
---
|
---
|
||||||
|
|
||||||
Take the additional class yyou made, such as vehicle and do some inheritance.
|
Take the additional class you made, such as vehicle and do some inheritance.
|
||||||
For vehicles you could create a base class with a brand and number of wheels and seats.
|
For vehicles you could create a base class with a brand and number of wheels and seats.
|
||||||
Then inherit for a bus, bike, car, cycle, etc.
|
Then inherit for a bus, bike, car, cycle, etc.
|
||||||
|
|
||||||
**TODO shapes and surfaces**
|
## A *practical* example
|
||||||
|
|
||||||
|
```python
|
||||||
|
import math
|
||||||
|
|
||||||
|
|
||||||
|
class Shape(object):
|
||||||
|
def __init__(self):
|
||||||
|
self.area = 0
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "I'm a {} with an area of {:.2f} cm2".format(
|
||||||
|
self.__class__.__name__,
|
||||||
|
self.area,
|
||||||
|
)
|
||||||
|
|
||||||
|
def __add__(self, other):
|
||||||
|
combi_shape = Shape()
|
||||||
|
combi_shape.area = self.area + other.area
|
||||||
|
return combi_shape
|
||||||
|
|
||||||
|
def __sub__(self, other):
|
||||||
|
combi_shape = Shape()
|
||||||
|
combi_shape.area = self.area - other.area
|
||||||
|
return combi_shape
|
||||||
|
|
||||||
|
def __div__(self, value):
|
||||||
|
combi_shape = Shape()
|
||||||
|
combi_shape.area = self.area / value
|
||||||
|
return combi_shape
|
||||||
|
|
||||||
|
|
||||||
|
class Square(Shape):
|
||||||
|
def __init__(self, width):
|
||||||
|
Shape.__init__(self)
|
||||||
|
self.area = width * width
|
||||||
|
|
||||||
|
|
||||||
|
class Rectangle(Shape):
|
||||||
|
def __init__(self, width, height):
|
||||||
|
Shape.__init__(self)
|
||||||
|
self.area = width * height
|
||||||
|
|
||||||
|
|
||||||
|
class Triangle(Shape):
|
||||||
|
def __init__(self, base, height):
|
||||||
|
Shape.__init__(self)
|
||||||
|
self.area = (self.width * self.height) / 2
|
||||||
|
|
||||||
|
|
||||||
|
class Circle(Shape):
|
||||||
|
def __init__(self, radius):
|
||||||
|
Shape.__init__(self)
|
||||||
|
self.area = math.pi * math.pow(radius, 2)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
t = Square(4)
|
||||||
|
r = Rectangle(4, 6)
|
||||||
|
c = Circle(1.6)
|
||||||
|
print(t)
|
||||||
|
print(r)
|
||||||
|
print(c)
|
||||||
|
combi = t + r - c
|
||||||
|
print(combi)
|
||||||
|
```
|
||||||
|
|
||||||
## Now some *practical* improvements
|
## Now some *practical* improvements
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue