mirror of
https://github.com/DavidGailleton/42-Piscine_Python.git
synced 2026-03-14 05:06:55 +01:00
Corrected ex1, ready to push
This commit is contained in:
@@ -1,37 +1,58 @@
|
||||
from typing_extensions import override
|
||||
|
||||
|
||||
class Plant:
|
||||
name: str
|
||||
height: int
|
||||
age: int
|
||||
|
||||
def __init__(self, name, height, age):
|
||||
def __init__(self, name: str, height: int, age: int) -> None:
|
||||
"""Init plant with his value"""
|
||||
self.name = name
|
||||
self.height = height
|
||||
self.age = age
|
||||
|
||||
def get_info(self):
|
||||
print(self.name.capitalize() + ":", self.height, end="")
|
||||
print("cm,", self.age, "days old")
|
||||
def get_info(self) -> None:
|
||||
"""Display plant informations"""
|
||||
print(f"{self.name}: {self.height}cm, {self.age} days")
|
||||
|
||||
|
||||
class Flower(Plant):
|
||||
color: str
|
||||
|
||||
def bloom(self):
|
||||
def bloom(self) -> None:
|
||||
"""Make flower blooming"""
|
||||
print(self.name + " is blooming beautifully !")
|
||||
|
||||
def __init__(self, name, height, age, color):
|
||||
@override
|
||||
def get_info(self) -> None:
|
||||
"""Display Flower info"""
|
||||
print(f"{self.name} (Flower): {self.height}cm,",
|
||||
f"{self.age} days, {self.color} color")
|
||||
|
||||
def __init__(self, name: str, height: int, age: int, color: str) -> None:
|
||||
"""Init flower with his value"""
|
||||
super().__init__(name=name, height=height, age=age)
|
||||
self.color = color
|
||||
|
||||
|
||||
class Tree(Plant):
|
||||
trunk_diameter: str
|
||||
trunk_diameter: int
|
||||
|
||||
def produce_shade(self):
|
||||
def produce_shade(self) -> None:
|
||||
"""Produce shade and display his size"""
|
||||
shade_size = self.height * self.trunk_diameter / 1000
|
||||
print(self.name, "provides", shade_size, "square meter")
|
||||
print(self.name, "provides", shade_size, "square meter of shade")
|
||||
|
||||
def __init__(self, name, height, age, trunk_diameter):
|
||||
@override
|
||||
def get_info(self) -> None:
|
||||
"""Display Tree info"""
|
||||
print(f"{self.name} (Tree): {self.height}cm,",
|
||||
f"{self.age} days, {self.trunk_diameter}cm diameter")
|
||||
|
||||
def __init__(self, name: str, height: int,
|
||||
age: int, trunk_diameter: int) -> None:
|
||||
"""Init tree with his value"""
|
||||
super().__init__(name=name, height=height, age=age)
|
||||
self.trunk_diameter = trunk_diameter
|
||||
|
||||
@@ -40,7 +61,19 @@ class Vegetable(Plant):
|
||||
harvest_season: str
|
||||
nutritional_value: str
|
||||
|
||||
def __init__(self, name, height, age, hs, nv):
|
||||
def print_nutritional_value(self) -> None:
|
||||
"""Display nutritional value"""
|
||||
print(f"{self.name} is rich in {self.nutritional_value}")
|
||||
|
||||
@override
|
||||
def get_info(self) -> None:
|
||||
"""Display Vegetable info info"""
|
||||
print(f"{self.name} (Vegetable): {self.height}cm,",
|
||||
f"{self.age} days, {self.harvest_season} harvest")
|
||||
|
||||
def __init__(self, name: str, height: int,
|
||||
age: int, hs: str, nv: str) -> None:
|
||||
"""Init vegetable with his value"""
|
||||
super().__init__(name=name, height=height, age=age)
|
||||
self.harvest_season = hs
|
||||
self.nutritional_value = nv
|
||||
@@ -49,11 +82,16 @@ class Vegetable(Plant):
|
||||
if __name__ == "__main__":
|
||||
flower0 = Flower("Rose", 30, 5, "red")
|
||||
flower1 = Flower("Chrysanthem", 50, 1, "yellow")
|
||||
tree0 = Tree("Platane", 300, 6, 30)
|
||||
tree1 = Tree("Sapin", 700, 15, 50)
|
||||
tree0 = Tree("Spruce", 300, 6, 30)
|
||||
tree1 = Tree("Oak", 700, 15, 50)
|
||||
vegetable0 = Vegetable("Salade", 30, 1, "Summer", "Vitamine c")
|
||||
vegetable1 = Vegetable("tomato", 200, 2, "Autumn", "Vitamine d")
|
||||
print(flower0.name, flower0.height, flower0.age, flower0.color)
|
||||
vegetable1 = Vegetable("Tomato", 200, 2, "Autumn", "Vitamine d")
|
||||
|
||||
flower0.get_info()
|
||||
flower0.bloom()
|
||||
print("")
|
||||
tree0.get_info()
|
||||
tree0.produce_shade()
|
||||
print(vegetable0.name, "is rich in", vegetable0.nutritional_value)
|
||||
print("")
|
||||
vegetable0.get_info()
|
||||
vegetable0.print_nutritional_value()
|
||||
|
||||
Reference in New Issue
Block a user