summaryrefslogtreecommitdiff
path: root/py01/ex3/ft_plant_factory.py
blob: 15669af96026f971ba998edd724ea43696a8baf5 (plain)
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
#!/usr/bin/env python3


# Create a class
class Plant():

    def __init__(self: 'Plant', name: str, height: float, age: int) -> None:
        self.name_is = name
        self.height_is = height
        self.age_is = age

# Method to grow the age
    def age(self: 'Plant') -> None:
        self.age_is += 1

# Method to grow the height
    def height(self: 'Plant') -> None:
        self.height_is *= 1.04

# Method to show the plant information
    def show(self: 'Plant') -> None:
        print(self.name_is + ": " + str(round(self.height_is, 1)) + "cm, "
              + str(self.age_is) + " days old")


Params = [("Rose", 25, 30),
          ("Oak", 200, 365),
          ("Cactus", 5, 90),
          ("Sunflower", 80, 45),
          ("Fern", 15, 120)]


def ft_plant_factory() -> None:
    print("=== Plant Factory Output ===")
    for param in Params:
        obj = Plant(param[0], param[1], param[2])  # instantiate the object
        # obj = Plant(*param) # instantiate the object and unpack with *
        print("Created: ", end='')
        obj.show()


if __name__ == "__main__":
    ft_plant_factory()