Please note: read the guideline before starting.
Firstly, you should create SoftwareEngineer class,
which will be a parent for all other classes.
Its __init__ method should take one parameter: name of the
engineer. Also, engineer should have skills attribute -
a list of his/her skills, such as "Python" or "JavaScript".
skills should be initialized as an empty list and will be extended by the child classes.
SoftwareEngineer class should have one method: learn_skill that
takes a skill of string type and should add it to the skills list.
engineer = SoftwareEngineer("Max")
# engineer.skills == []
engineer.learn_skill("Python")
# engineer.skills == ["Python"] Write class FrontendDeveloper,
which should be a child of class SoftwareEngineer.
Its __init__ method also takes the name of the engineer.
Instances of this class should extend the skills list with the following default skills:
"JavaScript", "HTML", "CSS".
front_dev = FrontendDeveloper("Alisa")
# front_dev.skills == [
# "JavaScript",
# "HTML",
# "CSS",
# ]It should have one additional method: create_awesome_web_page.
It should print a following string "{name} is creating a webpage..."
where name is the name of the engineer
and return the code of the created webpage: "<h1>Hello world</h1>".
page = front_dev.create_awesome_web_page() # "Alisa is creating a webpage..."
# page == "<h1>Hello world</h1>"Write class BackendDeveloper,
which should be a child of class SoftwareEngineer.
Its __init__ method also takes the name of the engineer.
Instances of this class should extend the skills list with the following default skills:
"Python", "SQL", "Django".
backend_dev = BackendDeveloper("Bob")
# backend_dev.skills == [
# "Python",
# "SQL",
# "Django",
# ]It should have one additional method: create_powerful_api.
It should print a following string "{name} is creating an API..."
where name is the name of engineer and return address of the API: "http://127.0.0.1:8000".
address = backend_dev.create_powerful_api() # "Bob is creating an API..."
# address == "http://127.0.0.1:8000"Write class AndroidDeveloper,
which should be a child of class SoftwareEngineer.
Its __init__ method also takes the name of the engineer.
Instances of this class should extend the skills list with the following default skills:
"Java", "Android studio".
android_dev = AndroidDeveloper("Beth")
# android_dev.skills == [
# "Java",
# "Android studio",
# ]It should have one additional method: create_smooth_mobile_app.
It should print a following string "{name} is creating a mobile app..."
where name is the name of engineer and return UX of the created app: "Ads every three swipes".
app = android_dev.create_smooth_mobile_app() # "Beth is creating a mobile app..."
# app == "Ads every three swipes"Finally, create class FullStackDeveloper which should be a child of some already created classes.
It should have one additional method: create_web_application.
This method should print the following message: "{name} started creating a web application..."
and call create_powerful_api, create_awesome_web_page methods.
full_stack_dev = FullStackDeveloper("Tom")
# full_stack_dev.skills == [
# "Python",
# "SQL",
# "Django",
# "JavaScript",
# "HTML",
# "CSS",
# ]
full_stack_dev.create_web_application()
# Tom started creating a web application...
# Tom is creating an API...
# Tom is creating a webpage...